我使用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