日期:2014-05-16  浏览次数:20602 次

GDB调试core文件

首先需要设置操作系统core文件到上限,一般为0

可以查看一下

ulimit -c

可以设置器大小

ulimit -c 2048

因为上述单位是块的大小,为512bytes,所以其实我们是设置里2MB.

ulimit -c unlimited

也可以不设置上限大小


最简单的方法是用户在自己的~/.bash_profile中加入ulimit -S -c unlimited > /dev/null 2>&1,这样设置后允许当前用户生成没有大小限制的core dump文件

如果想让修改永久生效,则需要修改配置文件,/etc/security/limits.conf。 

*       soft        core        1024


继续运行程序,如果程序崩溃,

ls core*

core.1234

开始调试程序

gdb a.out -c core


GDB中键入where或bt,就会看到程序崩溃时堆栈信息(当前函数之前的所有已调用函数的列表(包括当前函数),gdb只显示最近几个),我们很容易找到我们的程序在最后崩溃的时候调用了什么。注意二进制版本要和当初运行的版本一致。


原文:http://blog.csdn.net/hongchangfirst/article/details/8956237

作者:hongchangfirst

hongchangfirst的主页:http://blog.csdn.net/hongchangfirst