This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: backtrace and self-compiled module


Mark Wielaard wrote:
Hi Christian,

On Thu, 2009-06-04 at 10:01 +0200, Christian Kaiser wrote:
Thanks for your effort but that doesn't solve my problem. It is still two correct lines only...

I'll try to give some more detail of what the backtrace should look like.

[root@sunf-1 ~]# stap -d kernel -v stack_trace.stp dis_ssocks AF_SCI_stream_trigger_setup
[...]
===== (1) =====
0xffffffff8850894a : AF_SCI_stream_trigger_setup+0x1/0x74 [dis_ssocks]
0xffffffff884ff04e : AF_SCI_init_sciconn+0x186/0x1b3 [dis_ssocks]
0x00ffffffff884ff0 : _osif_sock_cb_state_change+0xffffffff884ff0/0x0 [dis_ssocks]
0x6800ffffffff884f : _osif_sock_cb_state_change+0x6800ffffffff884f/0x0 [dis_ssocks]
0xf16800ffffffff88 : _osif_sock_cb_state_change+0xf16800ffffffff88/0x0 [dis_ssocks]
[...]


should look like:

AF_SCI_stream_trigger_setup [dis_ssocks/intr.c]
AF_SCI_init_sciconn [dis_ssocks/stream.c]
stream_start_connecter [dis_ssocks/connect.c, defined as static]
AF_SCI_stream_connect [dis_ssocks/connect.c]
[...]

I find all symbols except the one for stream_start_connecter (OK since it is defined as static) in the dis_ssocks.ko file.

0000000000013949 T AF_SCI_stream_trigger_setup
0000000000009ec8 T AF_SCI_init_sciconn
000000000000ef70 T AF_SCI_stream_connect

It might just be that the backtracer gets confused somehow. Only now did I notice you are using systemtap 0.7.2. Which is fairly old. The whole backtrace mechanism was rewired for 0.9.7. The old one kind of just "guessed" the addresses on the stack. The new one uses the dwarf debug_frame tables to do exact unwinding.

Yes! That's it! I installed the latest release (0.9.7) and that is printing correct stack traces.


If possible please do upgrade.
You can also try to get a bit more debugging output for stap itself by
running with -DDEBUG_SYMBOLS=1 and/or -DDEBUG_UNWIND=1 (use higher
values to get more output) to see what stap is trying to do.

Cheers,

Mark

Thanks!


A last question came up to me when I discovered the 'dtrace' called ruby script in the bin directory. What is it for? I would be great if I could use my existing D scripts...

Christian

--
Christian Kaiser, Software Engineer, Dolphin Interconnect Solutions
http://www.dolphinics.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]