summaryrefslogtreecommitdiffstats
path: root/runtime/stack-i386.c
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2008-09-10 17:21:51 -0400
committerFrank Ch. Eigler <fche@elastic.org>2008-09-10 17:21:51 -0400
commitdd13da3b90d71b94c8dc09942fee97f8513df348 (patch)
treed490b811932be34445f3d02331b14d4f1c5b909a /runtime/stack-i386.c
parentf76427a2bf80e4451e5e8d0c26b06aca65e4e2c4 (diff)
parentda4c496a55b73e2a768d3b1c6cee44b43144bcc8 (diff)
downloadsystemtap-steved-dd13da3b90d71b94c8dc09942fee97f8513df348.tar.gz
systemtap-steved-dd13da3b90d71b94c8dc09942fee97f8513df348.tar.xz
systemtap-steved-dd13da3b90d71b94c8dc09942fee97f8513df348.zip
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
* 'master' of ssh://sources.redhat.com/git/systemtap: backtrace fix for i386 with neither frame pointers nor dwarf unwinding Add network security warning for the client/server. Check for dwarf_getelf (elfutils 0.126+). hangeLog entries for latest commits. Move stap-find-* script to client sub rpm. Rename _stp_module module_base output to dwarf_module_base and document. Remove unnecessary dependencies. Correct man page specs in systemtap.spec Create systemtap-client and systemtap-server sub rpms
Diffstat (limited to 'runtime/stack-i386.c')
-rw-r--r--runtime/stack-i386.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/runtime/stack-i386.c b/runtime/stack-i386.c
index ad101889..ed7e2ce1 100644
--- a/runtime/stack-i386.c
+++ b/runtime/stack-i386.c
@@ -54,9 +54,10 @@ static void __stp_stack_print (struct pt_regs *regs, int verbose, int levels)
fp = next_fp;
}
#else
+#ifdef STP_USE_DWARF_UNWINDER
struct unwind_frame_info info;
arch_unw_init_frame_info(&info, regs);
-
+
while (levels && !arch_unw_user_mode(&info)) {
int ret = unwind(&info);
dbug_unwind(1, "ret=%d PC=%lx SP=%lx\n", ret, UNW_PC(&info), UNW_SP(&info));
@@ -71,5 +72,8 @@ static void __stp_stack_print (struct pt_regs *regs, int verbose, int levels)
_stp_stack_print_fallback(context, UNW_SP(&info), verbose, levels);
break;
}
+#else /* ! STP_USE_DWARF_UNWINDER */
+ _stp_stack_print_fallback(context, (unsigned long)&REG_SP(regs), verbose, levels);
#endif /* STP_USE_FRAME_POINTER */
+#endif
}