1.终端下执行ulimit -c 查看core文件大小限制 ,一般操作系统默认为0。
2.执行ulimit -c 1024把core文件大小限制在1k, 也可以直接执行ulimit -c unlimited 设置为无限制。
3.设置core文件保存路径。
vi 打开/etc/sysctl.conf 文件,
加入kernel.core_pattern = /tmp/corefile/core.%e.%t
保存。
需要注意的是 要保证用户对/tmp/corefile 有读写权限。
%e表示的是应用名称, %t表示生成时间。
4.终端执行sysctl -p
这样几步设置完成后, 执行程序出错的话就会在/tmp/corefile/目录下生成相应的core文件了。
调试的话,终端执行gdb ./xxx.out /tmp/corefile/core.xxx.xxxx,然后在gdb视图下执行bt即可。
./xxx.out:出错时正在执行哪个程序。