gdb默认情况下,父进程fork一个子进程,gdb只会继续调试父进程而不会管子进程的运行。

在一部分系统中(基于2.6内核的CentOS,支持follow-fork和detach-on-fork模式),比如HP-UX11.x之后的版本,Linux2.5.60之后的版本,可以使用以下的方法来达到方便的进行多进程调试功能。

1. 跟踪子进程进行调试,可以使用set follow-fork-mode mode来设置fork跟随模式。
1.1 show follow-fork-mode
      进入gdb以后,我们可以使用show follow-fork-mode来查看目前的跟踪模式。

1.2 set follow-fork-mode parent
      gdb只跟踪父进程,不跟踪子进程,这是默认的模式。

1.3 set follow-fork-mode child
      gdb在子进程产生以后只跟踪子进程,放弃对父进程的跟踪。

2. 想同时调试父进程和子进程,以上的方法就不能满足了。Linux提供了set detach-on-fork mode命令来供我们使用
2.1 show detach-on-fork
      show detach-on-fork显示了目前是的detach-on-fork模式

2.2 set detach-on-fork on
      只调试父进程或子进程的其中一个(根据follow-fork-mode来决定),这是默认的模式。

2.3 set detach-on-fork off
       父子进程都在gdb的控制之下,其中一个进程正常调试(根据follow-fork-mode来决定),另一个进程会被设置为暂停状态。

3.具体示例
   show follow-fork-mode
   set follow-fork-mode child
   show detach-on-fork
   set detach-on-fork off

最新文章

  1. PHP的一些开源项目网站
  2. angularjs1 实现地图添加自定义控件(搜索功能)及事件
  3. Google 新推出Background sync API
  4. Silverlight 调用自托管的wcf 报跨域异常的处理
  5. 关于codereview工具与建议
  6. linux消息队列的使用及内核实现原理
  7. 记 Ubuntu14.04 Monodevelop 安装的两个问题
  8. ARM 之FIQ(快速中断) IRQ(中断)
  9. 项目优化经验分享(六)SVN冲突和处理
  10. C++学习之路—继承与派生(四)拓展与总结
  11. WPF wpf scrollviewer 触屏滚动 窗体弹跳
  12. 安装 MySQL 后,需要调整的 10 个性能配置项
  13. Ubuntu 16.04下安装64位谷歌Chrome浏览器
  14. 51nod 2512
  15. HTTP协议(二)之确保web安全的HTTPS
  16. 关于HashMap多线程下环形链表的总结
  17. python 删除模块
  18. 剑指offer-int类型负数补码中1的个数-位操作
  19. code3731 寻找道路
  20. 创建一个支持ES6的Nodejs项目

热门文章

  1. shell携带附件,Linux下的自解压文件诞生了
  2. filebeat7.5 日志
  3. linux(centos8):prometheus使用mtail监控错误日志
  4. JavaSE学习笔记05面向对象编程01
  5. UI-个人作品集
  6. 【洛谷】 cpp-->c 一道好玩的显示题
  7. ES7 - 11新特性总结
  8. Vue基础语法(四)
  9. Messenger实现进程间通信(IPC)
  10. open_spiel 随笔