diff options
author | Tim Moore <timoore@redhat.com> | 2009-12-16 12:00:55 +0100 |
---|---|---|
committer | Tim Moore <timoore@redhat.com> | 2009-12-16 15:03:22 +0100 |
commit | 5e562a69a5432566c6ae78344ae51b80ced7f15b (patch) | |
tree | 3c8101132cad09ef61b0ccc89d1d0be0dc324fd8 /translate.cxx | |
parent | 39a3e39706a18dbf3698b52fc1cc7532d94078e8 (diff) | |
download | systemtap-steved-5e562a69a5432566c6ae78344ae51b80ced7f15b.tar.gz systemtap-steved-5e562a69a5432566c6ae78344ae51b80ced7f15b.tar.xz systemtap-steved-5e562a69a5432566c6ae78344ae51b80ced7f15b.zip |
set the IP in return probes to the returned-to instruction
It's easily available in kretprobes and uretprobes and is consistent
with the rest of the program state.
* translate.cxx (emit_common_header) : add uretprobe_instance to context.
* tapsets.cxx (common_probe_entryfn_prologue): Initialize ri in
context to 0.
(dwarf_derived_probe_group::emit_module_decls): Change IP to return
address in kretprobes.
(uprobe_derived_probe_group::emit_module_decls): enter_uretprobe_probe:
set ri (uretprobe_instance) in context. Change IP to return
address in uretprobes. Don't emit uprobe include and #define
* runtime/runtime.h : Add includes and #define for uprobes.
* runtime/stack.c (_stp_stack_print, _stp_stack_snprint): Add extra
argument for uretprobe_instance.
* tapset/context-unwind.stp (print_backtrace, backtrace): Pass NULL
for uretprobe_instance to _stp_stack_print.
* tapset/ucontext-unwind.stp (print_ubacktrace, ubacktrace): pass
uretprobe_instance to _stp_stack_print
* testsuite/systemtap.context/uprobe_uaddr.exp : new test for uaddr in
function probes
* testsuite/systemtap.context/uprobe_uaddr.stp : new file
Diffstat (limited to 'translate.cxx')
-rw-r--r-- | translate.cxx | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/translate.cxx b/translate.cxx index aca0d868..e6c8cde9 100644 --- a/translate.cxx +++ b/translate.cxx @@ -905,6 +905,7 @@ c_unparser::emit_common_header () o->newline() << "cycles_t cycles_base;"; o->newline() << "cycles_t cycles_sum;"; o->newline() << "#endif"; + o->newline() << "struct uretprobe_instance *ri;"; // PR10516: probe locals |