`
sealbird
  • 浏览: 570930 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

gdb 子进程 多进程 fork 调试

BBS 
阅读更多
标   题: [FAQ] 请问如何用gdb调试子进程
发信站: BBS 水木清华站 (Mon May 19 18:17:02 2003), 转信

作个FAQ,在常见的x86平台上如何gdb调试fork或者exec出来的子进程

1. 在fork语句上设置断点,修改fork返回的值。这种做法并没有真正去
    触动已经存在的子进程,而是强迫夫进程去走子进程的流程。对付简单
    情况都非常有效。
2. 修改源代码,在fork后面,父进程和子进程中都加上while(debug_lock) sleep(1);
    这样的语句。fork后父进程detach,两者就都可以attatch了,attatch后
    set debug_lock = 0使得程序流程正常继续。这种做法可以调试子进程,
    但是需要修改源代码。
3. 如果你使用的gdb版本>= 6.0,考虑使用
(gdb) set follow-fork-mode
ask      child    parent

这里修改
(gdb) set follow-fork-mode child
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics