日期:2014-05-16 浏览次数:20602 次
首先需要设置操作系统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