|
From: David G. <dav...@gm...> - 2011-07-13 18:17:44
|
Yes, thank you so much for the help. lackey seems to be the answer! 2011/7/13 Julian Seward <js...@ac...>: > > I think JosefW provided a better followup on the mailing list, yes? > > J > > On Tuesday, July 12, 2011, you wrote: >> Hi! First of all, thank you for the quick response! But I'm afraid it >> wasn't of much help as I am not familiar with helper functions (C) and >> valgrind/callgrinds code is quite complex. I know that setup_bbcc is a >> helper function called by addBBSetupCall, but it is run at JIT-time. >> How can I set calls to helper functions and then have them run at >> run-time? Can you give me an example from callgrind? >> >> Once again, thank you very much! >> >> 2011/7/12 Julian Seward <js...@ac...>: >> >> Is there any way I can get the address stored at those temporaries? >> > >> > Sounds like you're confusing the concepts of JIT-time and run-time. >> > JIT-time is one-time instrumentation of each block, immediately before it >> > is used, and is what you're doing in the code fragment you posted. >> > Run-time is when the instrumented block is run, and can happen any >> > number of times. >> > >> > The addresses in "those temporaries" aren't known until run time, but >> > you are looking at the code at JIT time. What you need to do in your >> > instrumentation routine is insert calls to helper functions (which >> > you'll also need to write) passing to them, the values of the temporaries >> > in which you're interested. Then the helpers will see the actual >> > values. >> > >> > There are undoubtedly examples already in the Callgrind instrumentation >> > function of adding calls to helper functions, if only because Callgrind's >> > cache simulators need to look at each load and store address. Look out >> > for IRDirty and IRStmt_Dirty in the code. >> > >> > J > > |