• 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
  • 相关阅读:
    Facade
    Adapter
    Bridge
    Factory
    Singleton
    Decorator
    Template Method
    设计模式
    寻找最小的k个数
    java并发编程(4)--线程池的使用
  • 原文地址:https://www.cnblogs.com/habibah-chang/p/3510529.html
Copyright © 2020-2023  润新知