diff options
author | Dave Brolley <brolley@redhat.com> | 2010-01-07 14:00:49 -0500 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2010-01-07 14:00:49 -0500 |
commit | af7b183c32c627b1934e9be2d028d7c4ff1a1d2e (patch) | |
tree | a1670ad0f02f3ebb47ef2aca648ff7d6afc4e5db /runtime/stack.c | |
parent | a0626e2e2ea13b6fc974157fb71fe6d48f4c7ec0 (diff) | |
parent | 4bd4d40e19f7ba203d5e380965210181648f560a (diff) | |
download | systemtap-steved-af7b183c32c627b1934e9be2d028d7c4ff1a1d2e.tar.gz systemtap-steved-af7b183c32c627b1934e9be2d028d7c4ff1a1d2e.tar.xz systemtap-steved-af7b183c32c627b1934e9be2d028d7c4ff1a1d2e.zip |
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap
Diffstat (limited to 'runtime/stack.c')
-rw-r--r-- | runtime/stack.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/runtime/stack.c b/runtime/stack.c index 50dde6e1..612fa010 100644 --- a/runtime/stack.c +++ b/runtime/stack.c @@ -132,25 +132,29 @@ static void _stp_stack_print(struct pt_regs *regs, int verbose, struct kretprobe _stp_print("\nReturning to : "); } _stp_symbol_print((unsigned long)_stp_ret_addr_r(pi)); - } else if (ri) { -#ifdef CONFIG_UTRACE /* as a proxy for presence of uprobes */ + _stp_print_char('\n'); +#ifdef CONFIG_UTRACE /* as a proxy for presence of uprobes... */ + } else if (ri && ri != GET_PC_URETPROBE_NONE) { if (verbose == SYM_VERBOSE_FULL) { _stp_print("Returning from: "); - _stp_usymbol_print(ri->rp->u.vaddr, tsk); /* otherwise this dereference fails */ + /* ... otherwise this dereference fails */ + _stp_usymbol_print(ri->rp->u.vaddr, tsk); _stp_print("\nReturning to : "); _stp_usymbol_print(ri->ret_addr, tsk); + _stp_print_char('\n'); } else _stp_func_print(ri->ret_addr, verbose, 0, tsk); #endif + } else if (verbose == SYM_VERBOSE_BRIEF) { + _stp_func_print(REG_IP(regs), verbose, 0, tsk); } else { _stp_print_char(' '); if (tsk) - _stp_usymbol_print(REG_IP(regs), tsk); + _stp_usymbol_print(REG_IP(regs), tsk); else - _stp_symbol_print(REG_IP(regs)); - } - if (verbose != SYM_VERBOSE_BRIEF) + _stp_symbol_print(REG_IP(regs)); _stp_print_char('\n'); + } } else if (pi) _stp_printf("%p %p ", (int64_t)(long)_stp_ret_addr_r(pi), (int64_t) REG_IP(regs)); else |