diff options
author | Mark Wielaard <mwielaard@redhat.com> | 2008-09-10 13:21:50 +0200 |
---|---|---|
committer | Mark Wielaard <mjw@redhat.com> | 2008-09-10 14:01:32 +0200 |
commit | f6f5a33817ac1d406c8c2687e32493cbc38ef4e7 (patch) | |
tree | 1196394a0621bbf0494d1cc27f9b85e1928aaba9 | |
parent | 61a805842f0ac863affa37245fc012e3cdcb4312 (diff) | |
download | systemtap-steved-f6f5a33817ac1d406c8c2687e32493cbc38ef4e7.tar.gz systemtap-steved-f6f5a33817ac1d406c8c2687e32493cbc38ef4e7.tar.xz systemtap-steved-f6f5a33817ac1d406c8c2687e32493cbc38ef4e7.zip |
Feed dwarf unwinder data through _stp_mod_sec_lookup (), but disabled for now.
-rw-r--r-- | runtime/ChangeLog | 8 | ||||
-rw-r--r-- | runtime/runtime.h | 6 | ||||
-rw-r--r-- | runtime/stack-x86_64.c | 2 | ||||
-rw-r--r-- | runtime/unwind.c | 3 |
4 files changed, 15 insertions, 4 deletions
diff --git a/runtime/ChangeLog b/runtime/ChangeLog index b51a2c9b..7502bf34 100644 --- a/runtime/ChangeLog +++ b/runtime/ChangeLog @@ -1,3 +1,11 @@ +2008-09-10 Mark Wielaard <mjw@redhat.com> + + * unwind.c (unwind): Use _stp_mod_sec_lookup to get module and + unwind tables. + * runtime.h (STP_USE_FRAME_BUFFER): Disable by default for now. + * stack-x86_64.c (__stp_stack_print): Add levels to + _stp_stack_print_fallback call. + 2008-09-09 Masami Hiramatsu <mhiramat@redhat.com> * regs-ia64.c (__ia64_fetch_register): Return the address of the diff --git a/runtime/runtime.h b/runtime/runtime.h index fd0cac9e..52d689a3 100644 --- a/runtime/runtime.h +++ b/runtime/runtime.h @@ -73,8 +73,10 @@ static struct #endif #endif -/* dwarf unwinder only tested so far on i386 and x86_64 */ -#if !defined(STP_USE_FRAME_BUFFER) && (defined(__i386__) || defined(__x86_64__)) +/* dwarf unwinder only tested so far on i386 and x86_64, + but globally disabled for now */ +#if 0 +// !defined(STP_USE_FRAME_BUFFER) && (defined(__i386__) || defined(__x86_64__)) #define STP_USE_DWARF_UNWINDER #endif diff --git a/runtime/stack-x86_64.c b/runtime/stack-x86_64.c index 783e72bd..d3ec91cf 100644 --- a/runtime/stack-x86_64.c +++ b/runtime/stack-x86_64.c @@ -45,6 +45,6 @@ static void __stp_stack_print(struct pt_regs *regs, int verbose, int levels) break; } #else /* ! STP_USE_DWARF_UNWINDER */ - _stp_stack_print_fallback(REG_SP(regs), verbose); + _stp_stack_print_fallback(REG_SP(regs), verbose, levels); #endif } diff --git a/runtime/unwind.c b/runtime/unwind.c index 21ea4559..7b19573d 100644 --- a/runtime/unwind.c +++ b/runtime/unwind.c @@ -676,6 +676,7 @@ int unwind(struct unwind_frame_info *frame) signed ptrType = -1; uleb128_t retAddrReg = 0; struct _stp_module *m; + struct _stp_section *s = NULL; struct unwind_state state; dbug_unwind(1, "pc=%lx, %lx", pc, UNW_PC(frame)); @@ -683,7 +684,7 @@ int unwind(struct unwind_frame_info *frame) if (UNW_PC(frame) == 0) return -EINVAL; - m = NULL /*_stp_get_unwind_info(pc) */; + m = _stp_mod_sec_lookup (pc, &s); if (unlikely(m == NULL)) { dbug_unwind(1, "No module found for pc=%lx", pc); return -EINVAL; |