今天在调试一个用了fork的程序,就查了一下gdb关于fork的方法。其中:
set follow-fork-mode mode 设置调用fork或者fork后,gdb的响应方式,mode可以设置为
parent 这是默认方式,表示gdb将挂载父进程,子进程将不收约束的运行
child 表示gdb,将挂载子进程,父进程的运行将不收约束。
我 们可以通过show follow-fork-mode 查看当前的运行方式。
同时你如果想要即debug父进程和子进程,你可以设置
set detach-on-fork mode
用来告诉gdb,是否放弃对某个进程的挂载。
mode可以是下面两个:
on
表示父进程或者子进程将要独自的运行
off
表示gdb将控制这两个进程,其中一个处在debug状态,另一个处在暂停状态(suspend)
在off的状态下,你想要查看所有的进程你可以用
info inferiors
查看挂载的进程 你也可以通过inferior命令,添加,删除,切换。
因为调用了exec之后,新的进程镜像,将会替换旧的进程镜像,你用命令run的时候,新的进程镜像将会重启,你可以通过
set follow-exec-mode
new 新建一个inferior
same 替换旧的inferior
阅读(1222) | 评论(0) | 转发(0) |