设置coredump存储路径需要配置/proc/sys/kernel/core_pattern中的路径,一般情况下如下操作:
echo /home/core-%e-%p >/proc/sys/kernel/core_pattern
但是这种方法在有的系统中会设置失败。例如ubuntu中。
因为ubuntu中默认开启了系统错误诊断,这项配置会阻止“echo /home/core-%e-%p >/proc/sys/kernel/core_pattern ”的操作。
所以如下设置:
关闭系统诊断。
sudo vim /etc/default/apport
将文件中enabled设置为0
enabled=0
然后:
修改/etc/sysctl.conf文件,建议修改前备份。
//切换到root权限
sudo su
//设置存储位置
vim /etc/sysctl.conf
kernel.core_pattern = /corefile/core-%e-%p-%t
//以上命令将coredump文件存储到 /corefile文件夹下,如果/corefile不存在则先创建此文件夹
//由于coredump存放在了系统目录,启动软件的时候需要使用管理员权限启动即 sudo ./app app为要启动的可执行文件
以上设置完成后重启,然后查看:/proc/sys/kernel/core_pattern文件,就能发现,路径修改成功。
注意;该方法设置的coredump路径,想要生成coredump,必须在程序启动是带sudo前缀,如:sudo ./test。