zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    MySQL数据模型
    Spring循环依赖
    @Autowired和@Resource区别
    Kafka概念
    阻塞队列
    线程池原理
    Spring AOP
    JVM 史上最最最完整深入解析(12000 字噢)
    Dubbo配置信息
    友情链接
  • 原文地址:https://www.cnblogs.com/habibah-chang/p/3510529.html
Copyright © 2011-2022 走看看