当我们的linux程序崩溃的时候,常常会有这样的提示:
Segmentation fault (core dumped)
段错误 (核心已转储)
提示说生成了core文件,但是此功能常常是默认关闭的,并没有产生core文件。
查看方法是:
ulimit -c
打开此功能,仅本次登录有效:
ulimit -c unlimited
默认生成的都叫core,新的覆盖旧的。
自动加pid后缀:
echo "1" > /proc/sys/kernel/core_uses_pid
指定core文件的路径和名字:
echo "/home/ubuntu/corefile/core-%e-%p" > /proc/sys/kernel/core_pattern
注:这个方法虽然不能永久生效,但是也够用了。
用gdb调试core文件的方法:
gdb <exefile> <corefile>
直接bt就可以看崩溃时的堆栈了。