linux 程序异常退出时,内核会生成 core 文件,通过 GDB 查看 core 文件可以定位程序异常退出时候的堆栈信息,指示出错的位置。
查看 core 文件是否打开
1 | $ ulimit -c |
如果结果为0,则表示系统关闭了该功能
开启 core
在当前 shell 设置1
$ ulimit -c unlimited
为整个用户设置1
$ cat ulimit-c unlimited > ~/.zshrc && source ~/.zshrc
core 设置
文件名是否带pid标识
1 | $ echo "1" > /proc/sys/kernel/core_uses_pid |
core 文件格式为 corename_with_format.pid
1 | $ echo "0" > /proc/sys/kernel/core_uses_pid |
core 文件格式为 corename_with_format
保存位置及格式设置
查看当前设置1
$ cat /proc/sys/kernel/core_pattern
位置及格式1
$ echo "/corefile_path/core-%e-%p-%t" > /proc/sys/kernel/core_pattern