如何用gdb调试多进程

如何在linux下用gdb调试多进程
1. 方法一
先写一段程序
这里写图片描述
这里写图片描述

编译时加上参数-g 才可以调试gcc tioashi.c -g -o tiaoshi
在父进程中休眠40秒时为了有足够的时间查询父进程id.
这里写图片描述
先运行程序,子进程跑完,父进程还在sleep。ps aux|grep ..查看进程id
这里写图片描述
gdb开启调试,再打开一个终端,attach 进程id就可以调试该进程,但必须保证进程还在sleep,没有跑完。

这里写图片描述
b 44(在44行下断点),continue在断点处停下。 display sum 查看当前sum的值。n(单步调试)。r(运行,不进行单步)。quit(退出调试)
这里写图片描述
这里写图片描述
这种方法很不方便,需要获得进程id才可以。但可以同时调试多个进程。

2.方法二
set follow-fork-mode child 调试子进程
或者set follow-fork-mode parent调试父进程
将上面代码的slepp去掉。
这里写图片描述
这里写图片描述
set完后先必须r 运行,会在子进程的断点处停下来(如果set parent会在父进程停下来),父进程(或子进程)则不会受影响,会一直运行到结束。 所这种方法只能同时调试一个进程。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏尔肖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值