记录学习过程中的点点滴滴
gdb 调试多进程程序方法
今天在用gdb调试sheepdog时,在程序fork出子进程后,整个gdb程序就退出了,无法继续跟踪,网上找了半天找到了解决方法.
解决方法:
设置detach-on-fork参数
set detach-on-fork [on|off]
- on: 断开调试follow-fork-mode指定的进程。
- off: gdb将控制父进程和子进程。follow-fork-mode指定的进程将被调试,另一个进程置于暂停(suspended)状态
将detach-on-fork 设置为off即可
跟踪子进程的方法:
默认情况下,gdb会继续跟踪父亲进程,无法对子进程进行调试
设置follow-fork-mode可以解决这个问题
follow-fork-mode的用法为:
set follow-fork-mode [parent|child]
- parent: fork之后继续调试父进程,子进程不受影响。
- child: fork之后调试子进程,父进程不受影响。
(gdb) set follow-fork-mode child
本文地址:http://www.yaronspace.cn/blog/index.php/archives/1072
来自yaronspace.cn 本文链接:http://yaronspace.cn/blog/archives/1072您可能对下面文章也感兴趣:
这篇文章由admin于2011 年 01 月 12 日 21:04发表在Linux编程。你可以订阅RSS 2.0 你可以跳到结尾直接评论。目前不允许通知。 |