Linux 打開core dump功能


  • 系統打開core dump功能

  • 在終端中輸入命令 ulimit -c ,輸出的結果為 0,說明默認是關閉 core dump 的,即當程序異常終止時,也不會生成 core dump 文件;
  • 使用命令 ulimit -c unlimited 來開啟 core dump 功能,並且不限制 core dump 文件的大小; 如果需要限制文件的大小,將 unlimited 改成你想生成 core 文件最大的大小,注意單位為 blocks(KB);
  • 以上命令只會對當前的終端環境有效,如果想需要永久生效,方法如下:
  1. 通過修改/etc/profile文件(系統的每個用戶設置環境信息)來使系統每次自動打開,打開/etc/profile文件 一般都可以在文件中找到這句語句:ulimit -S -c 0 > /dev/null2>&1,我們只要把那個0 改為unlimited ,然后保存退出,通過source /etc/profile 使當期設置生效;
  2. 修改文件 /etc/security/limits.conf文件,增加一行:

    

#<domain>   <type>   <item>   <value>
   *          soft     core   unlimited 

  

  • 系統修改core文件生成位置

  1. 默認生成的 core 文件保存在可執行文件所在的目錄下,文件名為 core;
  2. 通過修改 /proc/sys/kernel/core_uses_pid 文件可以讓生成 core 文件名是否自動加上 pid 號;
    例如 echo 1 > /proc/sys/kernel/core_uses_pid ,生成的 core 文件名將會變成 core.pid,其中 pid 表示該進程的 PID ;
  3. 通過修改 /proc/sys/kernel/core_pattern 來控制生成 core 文件保存的位置以及文件名格式;
    例如可以用 echo "/tmp/corefile-%e-%p-%t" > /proc/sys/kernel/core_pattern 設置生成的 core 文件保存在 “/tmp/corefile” 目錄下,文件名格式為 “corefile-程序名-pid-時間戳” ;

 

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM