summaryrefslogtreecommitdiffstats
path: root/runtime/stack-i386.c
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2009-06-03 11:44:55 -0400
committerDave Brolley <brolley@redhat.com>2009-06-03 11:44:55 -0400
commit0c820e5cc8eca45e94da1bfbf6091a098f180371 (patch)
tree2548e0f11d8dd6cf81df3a7ea4a4ef2ab7c8233a /runtime/stack-i386.c
parentea9d509619ae8dc1512576bccdff2288a2c256dc (diff)
parent129de9ef18cd142e31ed509a7704d4faf0879f4c (diff)
downloadsystemtap-steved-0c820e5cc8eca45e94da1bfbf6091a098f180371.tar.gz
systemtap-steved-0c820e5cc8eca45e94da1bfbf6091a098f180371.tar.xz
systemtap-steved-0c820e5cc8eca45e94da1bfbf6091a098f180371.zip
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Diffstat (limited to 'runtime/stack-i386.c')
-rw-r--r--runtime/stack-i386.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/runtime/stack-i386.c b/runtime/stack-i386.c
index 69623765..b447e495 100644
--- a/runtime/stack-i386.c
+++ b/runtime/stack-i386.c
@@ -67,14 +67,15 @@ static void __stp_stack_print (struct pt_regs *regs, int verbose, int levels,
if (ret == 0) {
_stp_func_print(UNW_PC(&info), verbose, 1, tsk);
levels--;
- continue;
+ if (UNW_PC(&info) != _stp_kretprobe_trampoline)
+ continue;
}
/* If an error happened or we hit a kretprobe trampoline,
* use fallback backtrace, unless user task backtrace.
* FIXME: is there a way to unwind across kretprobe
- * trampolines? */
+ * trampolines? PR9999. */
if ((ret < 0
- || (ret > 0 && UNW_PC(&info) == _stp_kretprobe_trampoline))
+ || UNW_PC(&info) == _stp_kretprobe_trampoline)
&& ! (tsk || arch_unw_user_mode(&info)))
_stp_stack_print_fallback(UNW_SP(&info), verbose, levels);
return;