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
原文地址:https://www.cnblogs.com/habibah-chang/p/3510529.html