我使用gdb
來附加到進程。我想弄清楚爲什麼它陷入了無限循環,以及它在做什麼。我在gdb
發出的命令backtrace
,得到了這樣的結果:解釋gdb回溯
#0 0x000000000041cf30 in [email protected]()
#1 0x0000000000452320 in winbindd_reinit_after_fork()
#2 0x00000000004524e6 in fork_domain_child()
#3 0x0000000000453585 in wb_child_request_trigger()
#4 0x000000381d2048e2 in tevent_common_loop_immediate() from /lib64/libtevent.so.0
#5 0x00007fbed6b98e17 in run_events_poll() from /lib64/libsmbconf.so.0
#6 0x00007fbed6b9922e in s3_event_loop_once() from /lib64/libsmbconf.so.0
#7 0x000000381d204060 in _tevent_loop_once() from /lib64/libtevent.so.0
#8 0x000000000042049a in main()
我的問題是:什麼是@符號意味着在第一線?我知道_talloc_free
是一個函數,但@plt
是什麼意思?另外,可以肯定的是:第二列中的數字是內存中函數的地址嗎?
我會說'@ plt'是mangled函數名稱的一部分。 (我認爲第二列是呼叫站點的地址;在該地址進行反彙編,您將看到。) – Jens 2013-04-10 21:42:26