当前位置: 技术问答>linux和unix
gdb 调试运行进程 堆栈中的函数名为问号
来源: 互联网 发布时间:2016-06-26
本文导语: gdb 调试运行进程 堆栈中的函数名为问号 如已用 nohup ./app & 在后台运行的进程其SID分别为: 15182 15184 15185 15186 其中发现15182父进程异常,并未退出,bt堆栈中的信息如下 (gdb) bt #0 0x0011a0f4 in __pthread_sigsuspend...
gdb 调试运行进程 堆栈中的函数名为问号
如已用 nohup ./app & 在后台运行的进程其SID分别为:
15182
15184
15185
15186
其中发现15182父进程异常,并未退出,bt堆栈中的信息如下
(gdb) bt
#0 0x0011a0f4 in __pthread_sigsuspend () from /lib/i686/libpthread.so.0
#1 0x00119728 in __pthread_wait_for_restart_signal () from /lib/i686/libpthread.so.0
#2 0x00116811 in pthread_join () from /lib/i686/libpthread.so.0
#3 0x08049027 in ThreadWait () at main.c:73
#4 0x08049086 in CatchSig (sig=11) at main.c:90
#5 0x0011d0b7 in __pthread_sighandler () from /lib/i686/libpthread.so.0
#6
#7 0x73612e79 in ?? ()
#8 0x693f7870 in ?? ()
#9 0x30393d64 in ?? ()
#10 0x31343233 in ?? ()
#11 0x30353235 in ?? ()
#12 0x33383131 in ?? ()
#13 0xbf00232c in ?? ()
#14 0x0102e06d in nlstdggo () from /home/oracle_app/lib/libclntsh.so.9.0
其中#7--#13这几个函数名不可见,可能是系统函数,或库函数,请问我如何得知该异常是哪里引起的?
如果能看出,请指点如何判断,如gdb - 15182这样的在线调试方法不能,则用什么方法才能看到异常的真正引起的地方!
请会的和不会的大哥都来跟下,提下人气,我想总会有人会的,这个一定要会,呵呵!不然对于突如其来的故障是没法解决的! 先谢了!
如已用 nohup ./app & 在后台运行的进程其SID分别为:
15182
15184
15185
15186
其中发现15182父进程异常,并未退出,bt堆栈中的信息如下
(gdb) bt
#0 0x0011a0f4 in __pthread_sigsuspend () from /lib/i686/libpthread.so.0
#1 0x00119728 in __pthread_wait_for_restart_signal () from /lib/i686/libpthread.so.0
#2 0x00116811 in pthread_join () from /lib/i686/libpthread.so.0
#3 0x08049027 in ThreadWait () at main.c:73
#4 0x08049086 in CatchSig (sig=11) at main.c:90
#5 0x0011d0b7 in __pthread_sighandler () from /lib/i686/libpthread.so.0
#6
#7 0x73612e79 in ?? ()
#8 0x693f7870 in ?? ()
#9 0x30393d64 in ?? ()
#10 0x31343233 in ?? ()
#11 0x30353235 in ?? ()
#12 0x33383131 in ?? ()
#13 0xbf00232c in ?? ()
#14 0x0102e06d in nlstdggo () from /home/oracle_app/lib/libclntsh.so.9.0
其中#7--#13这几个函数名不可见,可能是系统函数,或库函数,请问我如何得知该异常是哪里引起的?
如果能看出,请指点如何判断,如gdb - 15182这样的在线调试方法不能,则用什么方法才能看到异常的真正引起的地方!
请会的和不会的大哥都来跟下,提下人气,我想总会有人会的,这个一定要会,呵呵!不然对于突如其来的故障是没法解决的! 先谢了!
|
无调试信息 可执行程序、以及调用的库编译时加-g
|
没有debug symbole 信息。 编译时要加入-g选项,并且不要strip