一、gdb调试多进程
- 多线程代码
2.默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。
follow-fork-mode 和detach-on-fork 说明
<1>,设置方法:
- set follow-fork-mode[parent|child]
- set detach-on-fork[on|off]
<2>,显示:
show follow-fork-mode show detach-on-fork
调试父进程
<3>,查询正在调试的进程: info inferiors
显示GDB调试的所有inferior,GDB为他们分配ID。其中带*的进程是正在调试的进程。
(GDB将每一个被调试程序的执行状态记录在一个名为inferior的结构中。一般情况下一个inferior对应一个进程,每一个inferior都有自己的地址空间。inferior有时候会在进程没有启动时就存在)
<4>,切换调试的进程: inferior (inferi