在linux下调试C/C++程序时,有时候出现段错误,但是往往没有core dump文件。这是因为默认情况下是关闭的。为了方便调试,需要设置其打开。
设置过程共分为三步。
1. 打开core大小权限,改为不设限制
在当前命令行下设置则只对当前session有效,内容如下。要想永久有效,则需要使用root用户在/etc/profile尾部增加一行内容:
ulimit -c unlimited
2.设置core文件名称带进程id(PID),修改"/proc/sys/kernel/core_uses_pid"
文件,可以将进程的id作为作为扩展名,文件内容为1表示使用扩展名,默认为0;使用进程id扩展名时,生成的core文件格式为"core.xxx"
,xxx为进程id。
echo '1' > /proc/sys/kernel/core_uses_pid
3.设置core文件存储路径和更详细的文件名称
echo "./core-%e-%p-%t"> /proc/sys/kernel/core_pattern
测试验证:
kill -s SIGSEGV $$
看当前目录下有没有core文件。
以上一篇文章中的段错误测试用例为例:
参考:https://www.csdn.net/tags/MtzakgxsNzkzODUtYmxvZwO0O0OO0O0O.html