Lots of kretprobe_trampoline_holder in backtrace
Peter Teoh
htmldeveloper@gmail.com
Mon Apr 21 07:07:00 GMT 2008
Using the following script:
probe kernel.function("*@fs/open.c").call {
printf("===>%s\n", probefunc());
print_backtrace();
printf("\n");
}
probe kernel.function("*@fs/open.c").return {
printf("<===%s\n", probefunc());
printf("\n");
}
The output below. As noted, there is a lot of information hidden by
the presence of breakpoints, which are output as
kretprobe_trampoline_holder*. Is it not more logical to display the
ORIGINAL function, instead of the breakpoints on where we are seeing
kretprobe_trampoline_holder right now.....just like normal gdb
backtrace information. Shown below, if the breakpoints so happened
to embed one another, there is a lot of information lost, resulting in
a lot of not-so-useful "kretprobe_trampoline_holder" stacking up one
another.
===>sys_open
0xc04728c7 : sys_open+0x1/0x26
===>do_sys_open
0xc04727ec : do_sys_open+0x1/0xb7
0xc06377a6 : kretprobe_trampoline_holder+0x3/0x33
===>get_unused_fd_flags
0xc0472523 : get_unused_fd_flags+0x1/0xd0
0xc06377a6 : kretprobe_trampoline_holder+0x3/0x33
0xc06377a6 : kretprobe_trampoline_holder+0x3/0x33
<===get_unused_fd_flags
===>do_filp_open
0xc04727b7 : do_filp_open+0x1/0x35
0xc06377a6 : kretprobe_trampoline_holder+0x3/0x33
0xc06377a6 : kretprobe_trampoline_holder+0x3/0x33
===>nameidata_to_filp
0xc0472784 : nameidata_to_filp+0x1/0x33
0xc06377a6 : kretprobe_trampoline_holder+0x3/0x33
0xc06377a6 : kretprobe_trampoline_holder+0x3/0x33
0xc06377a6 : kretprobe_trampoline_holder+0x3/0x33
===>__dentry_open
0xc04725ff : __dentry_open+0x1/0x185
0xc06377a6 : kretprobe_trampoline_holder+0x3/0x33
0xc06377a6 : kretprobe_trampoline_holder+0x3/0x33
0xc06377a6 : kretprobe_trampoline_holder+0x3/0x33
0xc06377a6 : kretprobe_trampoline_holder+0x3/0x33
<===__dentry_open
<===nameidata_to_filp
<===do_filp_open
--
Regards,
Peter Teoh
More information about the Systemtap
mailing list