Linux下利用core来调试segmentation fault

Segmentation fault(段错误)是由于虚拟内存管理单元的异常所致,而该异常则通常是由于解引用一个未初始化或非法值的指针引起的。

Linux中提供了core dump的功能,使得对这类错误的调试更为容易。


一般情况下,linux系统是不允许产生core文件的,因此首先要解除这个限制:

ulimit -c unlimited

接下来,运行含segmentation fault的段程序,如:

./test

这时,segmentation fault的错误信息会显示为:

Segmentation fault (core dumped)

在该文件夹下会出现一个名为core的文件

使用生成的core文件进行调试

gdb test core

(gdb) bt

#0 0x00a5c920 in ?? () from /lib/i386-linux-gnu/libc.so.6
#1 0x00a5ca0d in exit () from /lib/i386-linux-gnu/libc.so.6
#2 0x00a4311b in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
#3 0x080483d1 in _start ()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值