使用GDB调试的时候,GDB 默认只能跟踪一一个进程,可以在fork 函数调用之前,通过指令设置GDB调试工具跟踪父进程或者是跟踪子进程,默认跟踪父进程。
1.设置调试父进程或者子进程: set follow- fork-mode [parent (默认)| child]
可使用 show follow- fork-mode 查看当前默认调试进程
2.设置调试模式: set detach-on-fork [on | off]
默认为on, 表示调试当前进程的时候,其它的进程继续运行,如果为off, 调试当前进程的时候,其它进程被GDB挂起。
可使用 show detach-on-fork 查看当前调试模式
3.查看调试的进程: info inferiors
查看当前调试的进程信息,如图所示。
4.切换当前调试的进程: inferior id (id为info输出的num,而不是进程号)
如图,此时*显示,已经切换到2号进程。
5.使进程脱离GDB调试:detach inferiors id
脱离后显示,父进程已运行完毕。