gdb调试daemon程序
http://www.ibm.com/developerworks/cn/linux/l-cn-gdbmp/index.html
缺省gdb是调试主进程的,可是现在采用daemon模式工作的程序那么多,主进程通常很快就结束了,子进程才是真正干活的。怎么跟踪调试子进程呢?
在gdb里面执行:
set follow-fork-mode child
则gdb就可以调试子进程了。
感谢互联网,感谢google。
还有一个方法,可以用gdb调试已经在运行的进程:运行gdb之后调用attach命令。
参见:
《Using GNU's GDB Debugger Debugging A Running Process》
http://dirac.org/linux/gdb/06-Debugging_A_Running_Process.php
comagent调试相关
- break comag_main.c:217行
- p recvbuf:
根据recvbuf的内容进行判断,是否要调试fork的子进程, 例子:比如,需要调试getSvVersion.c文件
- b /root/source/mgunix/bin/comagent/comagsv/getSvVersion.c:115
p recvbuf $2 = 0x97e0850 "{{-1056 {getSvVersion}}{-10 {192.168.140.140}}}"
则在此时设定需要调试子进程:
//调试子进程 set follow-fork-mode child
调试父进程:
//调试父进程 set follow-fork-mode parent