linux下coredump使用gdb定位bug

前提是保证运行环境里有gdb,而且开发环境里有gcc编译器

1、 使能coredump

生成的coredump文件的大小是可以设置的,这里使用 unlimited 不限制,如果设置成0,则功能没有开启,不生成dump文件

在这里插入图片描述
可以使用如下命令来改变大小,一般不要设置太大,如果dump多次文件会很大,导致磁盘空间不够用

ulimit -C 1024

2、设置dump文件生成的路径

这里我们把生成路径设置到了源码目录,文件名是:core.xxxxxxx。
在这里插入图片描述

3、 编一段有问题的代码

出问题的在第7行
在这里插入图片描述

4 、编译

-g参数说明加入调试信息,也就是debug版本,没有-g参数也可以只是dump出来的信息可能没有那么详细,但是也能dump出来东西,也能大致的定位问题。

gcc test.c -g

5、运行问题程序,生成dump文件

如下图所示,有(core dumped)生成了在这里插入图片描述

6 、gdb调试

使用-g参数,可以定位问题在第7行了
在这里插入图片描述
不使用-g参数,可以定位到函数func
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值