This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
"Michael Gong" <mwgong@cs.utoronto.ca> writes:
I don't know about inserting call at the basic block level, but I am quite sure inserting calls at the function level could be done by aspect-oriented-programming (AOP). [...]
Another possibility, coming soon[1], is to use systemtap[2] probes:
% stap -e 'probe process("./a.out").function("*") { log (probefunc()) }'
Among major differences between this approach and AOP are:
- no recompilation of the target program is required: it's more like
running a quick background scriptable debugger
- the instrumentation instead would be inserted into the
programs on the fly via breakpoints, probably overall slower
- we rely on OS kernel facilities for those breakpoints,
which means Linux only at this time
- the instrumentation (log...) language is rubber-padded and safe
- there can be no interference amongst concurrently running
instrumentation packages, or upon the main program: it's non-intrusive
FWIW, yet another technology possibility I know of for this sort of data collection is frysk[3].
- FChE
[1] "coming soon" == as soon as those kernel facilities allow ptrace-style breakpoint insertion into user space. At this time, we can only probe the kernel proper. [2] http://sources.redhat.com/systemtap/ [3] http://sources.redhat.com/frysk/
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |