printing kernel backtrace
Frank Ch. Eigler
fche@redhat.com
Sat Dec 12 14:38:00 GMT 2015
Hi -
n.borisov wrote:
> I've started experimenting with systemtamp and I'd like to print the
> callstack leading to the probed function.
Welcome!
> To that effect I have created the following very simple tapset:
(Just a terminology nit: a "tapset" is a set of script fragments for
automated reuse, kind of like libc. Yours is simply a script.)
> probe module("dm_thin_pool").function("do_waker") {
> print_syms(callers(-1))
> printf("finished backtrace\n");
> }
print_backtrace() would have been equivalent.
> However the output I get is something like that:
>
> 0xffffffffa0152c80 : do_waker+0x0/0x40 [dm_thin_pool]
> 0xffffffff810a5025 : 0xffffffff810a5025
> 0xffffffffa0152c80 : do_waker+0x0/0x40 [dm_thin_pool]
> 0xffffffffa0152c80 : do_waker+0x0/0x40 [dm_thin_pool]
> [...]
> 0xffffffffa0152c80 : do_waker+0x0/0x40 [dm_thin_pool]
> 0xffffffffa0152c8 : 0xffffffffa0152c8
> finished backtrace
That doesn't look quite right, does it. I'd expect stap to produce
some messages about missing unwind/symbol information, but it's not
happening right this time.
The problem is probably that the unwind/symbol info for only your
module was included. Try running your script again, but add
-d kernel
to the stap command line.
- FChE
More information about the Systemtap
mailing list