在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文件格式為"http://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文件。
以上一篇文章中的段錯誤測試用例為例:
上一篇
下一篇