C++项目经验(8)—— GDB快速定位程序崩溃(coredump)在哪行

目录

背景

步骤

1.安装gdb

2.对core_file限制进行设置

3.修改core_file生成位置

4.修改CMakeLists.txt

5.将二进制文件和core一块放进gdb

6.其他注意事项


背景

写项目中,由于保护做得不够,可能发生coredump,即段错误的情况,这时手动定位会比较麻烦,因为一个项目,可能函数不断嵌套,无论是打断点,还是cout指定位置输出,都会消耗不少时间,那么,能不能,找到什么办法,直接知道程序崩在哪一行呢?(不是崩在main里哪一行,而是函数不可往下分的那一行)

步骤

1.安装gdb

sudo apt install gdb

2.对core_file限制进行设置

查看core_file限制

$ ulimit -c
$ 0

如上所示,如果你得到的结果是0,就修改一下

ulimit -c unlimited

此时,当程序崩溃时,就能生成core_file文件了

3.修改core_file生成位置

core file生成的地方是在/proc/sys/kernel/core_pattern文件定义的

改动方式如下:
 

echo "yourPath/core-%e-%p" > /proc
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值