-
系統打開core dump功能
- 在終端中輸入命令
ulimit -c ,輸出的結果為 0,說明默認是關閉 core dump 的,即當程序異常終止時,也不會生成 core dump 文件;
- 使用命令
ulimit -c unlimited 來開啟 core dump 功能,並且不限制 core dump 文件的大小; 如果需要限制文件的大小,將 unlimited 改成你想生成 core 文件最大的大小,注意單位為 blocks(KB);
- 以上命令只會對當前的終端環境有效,如果想需要永久生效,方法如下:
- 通過修改/etc/profile文件(系統的每個用戶設置環境信息)來使系統每次自動打開,打開/etc/profile文件 一般都可以在文件中找到這句語句:ulimit -S -c 0 > /dev/null2>&1,我們只要把那個0 改為unlimited ,然后保存退出,通過source /etc/profile 使當期設置生效;
- 修改文件
/etc/security/limits.conf文件,增加一行:
#<domain> <type> <item> <value>
* soft core unlimited
- 默認生成的 core 文件保存在可執行文件所在的目錄下,文件名為
core;
- 通過修改
/proc/sys/kernel/core_uses_pid 文件可以讓生成 core 文件名是否自動加上 pid 號;
例如 echo 1 > /proc/sys/kernel/core_uses_pid ,生成的 core 文件名將會變成 core.pid,其中 pid 表示該進程的 PID ;
- 通過修改
/proc/sys/kernel/core_pattern 來控制生成 core 文件保存的位置以及文件名格式;
例如可以用 echo "/tmp/corefile-%e-%p-%t" > /proc/sys/kernel/core_pattern 設置生成的 core 文件保存在 “/tmp/corefile” 目錄下,文件名格式為 “corefile-程序名-pid-時間戳” ;
參考