Chinaunix首页 | 论坛 | 博客
  • 博客访问: 371079
  • 博文数量: 80
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1767
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-24 16:18
个人简介

为啥不能追求自己的爱好一辈子呢

文章分类

全部博文(80)

文章存档

2017年(1)

2015年(2)

2014年(18)

2013年(59)

分类: LINUX

2013-12-10 11:22:08

今天在调试一个用了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

阅读(1169) | 评论(0) | 转发(0) |
0

上一篇:ltrace strace

下一篇:ptrace

给主人留下些什么吧!~~