gdb调试多进程程序

来源:互联网 发布:苗族 知乎 编辑:程序博客网 时间:2024/06/06 07:03

公司一个linux项目,主进程启动之后,调用fork()复制了一份在后台跑。用gdb调试的时候发现跑到fork()之后,gdb会detach子进程,接着调试主进程。

如何才能调试子进程呢?查了一下文档,发现可以用命令控制gdb在fork()之后跟踪哪一个进程:

> gdb <exec>(gdb) set follow-fork-mode child...(gdb) run(gdb)[New process 10101][Switching to thread 0x.....]....

set follow-fork-mode parent是跟踪父进程(默认)

这样就能调试子进程了。



或者,使用gdb的attach命令,可以获得子进程的pid之后,直接attach上去。

用这种方法可能需要些一些调试代码,让子进程等待gdb的attach

原创粉丝点击