Linux下利用core来调试segmentation fault

来源:互联网 发布:js array get set 编辑:程序博客网 时间:2024/06/14 10:08

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 ()


原创粉丝点击