This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: print_backtrace not printing full stack
- From: Jim Keniston <jkenisto at us dot ibm dot com>
- To: "Frank Ch. Eigler" <fche at redhat dot com>
- Cc: Mike Mason <mmlnx at us dot ibm dot com>, SystemTAP <systemtap at sources dot redhat dot com>
- Date: 10 Aug 2006 15:23:00 -0700
- Subject: Re: print_backtrace not printing full stack
- Organization:
- References: <44DB8A6E.5000601@us.ibm.com> <y0mmzacwc9p.fsf@ton.toronto.redhat.com>
On Thu, 2006-08-10 at 13:45, Frank Ch. Eigler wrote:
> We also
> know that kretprobes did or does have problems with corrupting
> backtraces for even plain nested kernel-side probes.
Still does. You'll see "kretprobe_trampoline" in the stack trace
wherever kretprobes has hijacked the return address of a kretprobed
function. (The stack trace is not otherwise corrupted, to my
knowledge.)
It is theoretically possible, though a bit messy, for kprobes to dig out
the real return address corresponding to the Nth appearance of
kretprobe_trampoline in your stack trace. Since SystemTap has its own
implementation of backtrace(), it could be made to do that. But then
we'd run up against the Catch-22 of
a) There's no in-kernel use of this kretprobes feature ("and by the way,
SystemTap is $#%&!").
b) Don't $#%&! up the in-kernel stack-trace implementations with this
$#%&!. Fix kretprobes!
Jim