调试应用程序之使用core dump

    在应用程序中,经常会导致段错误,segment default,我们可以使用二分法一个个打印,或者用gdb 一步步的step进去查看打印,但是这在很大的程序中显得效率很低,这时我们可以使用core dump 来调试查看出差的地方。

      core就是核心的意思,这里是内存,dump是倒垃圾的意思,就是将程序中的内存出错的像倒垃圾一样呈现出来。
下面简单的显示一下core dump的用法

产生core文件。一般这个core文件都是命名为core 或者core.xxx(xxx就是产生错误的进程号)

设置core文件为没有限制大小
ulimit -c unlimited  (如果要不产生core文件可用ulimit -c 0)


应用程序编译时加上-g选项

运行可执行程序
./core_test.o

ls 可看见产生core文件

core  core_test.c  core_test.o


开始调试:
gdb ./core_test.o core


可看见出错的地方。

Program terminated with signal 11, Segmentation fault.
#0  0x080483c7 in core_test () at core_test.c:6
这是个错误的赋值---数组越界


下面是测试文件




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值