参考:
[1] GDB debugging multi-process programs
[2] Debugging programs with multiple processes
根据这两篇参考链接,完全可以实现使用gdb同时调试父进程和子进程。
接下来说明一下可能遇到的坑
- gdb8.1版本有bug,设置完
set detach-fork-on off
,执行fork
之后,切换到子进程,会遇到不能添加断点
等问题 - gdb9.2版本也有bug,进程切换的时候,会遇到
fork.c文件缺失
等问题,不过也不影响,使用多次n
命令跳过即可。
因此,目前来说,作者使用Ubuntu 20.10,gdb 10.2才没有bug,能够正常进行多个进程同时调试。
gdb 10.2的安装