linux不生成core文件

參考:12

怎麼確認程序發生過崩潰:打開 /var/log/messages 文件(也可能是帶着日期的類似messages-xxxxx這樣的文件),然後在這個文件裏通過關鍵字查找,關鍵字可以是你的程序名(我的是pausdk),如下圖:

如何修改設置讓core文件正常生成:

(1).首先你在你的黑窗口上輸入:ulimit -c 得到如下圖:

這個0的意思是說,您的core文件生成是受限制的,我一般是直接去改設置文件,將設置寫死,免得不生效。打開文件/etc/profile  然後在最末尾添加一行 ulimit -c unlimited ,然後保存退出,使用命令 source /etc/profile  使其生效。這時再輸入先前的命令,如下圖:

這個就表示生效了,其實不通過寫文件,只輸入命令 ulimit -c unlimited 同樣生效,但是隻在當前這個會話裏生效,你在重新開一個新的終端試試,就又回到0了,所以我一般設置在文件裏,生效後,以後再打開的新連接,都是unlimited。

core文件生成路徑:
 輸入可執行文件運行命令的同一路徑下。
 若系統生成的core文件不帶其它任何擴展名稱,則全部命名爲core。新的core文件生成將覆蓋原來的core文件。

 1)/proc/sys/kernel/core_uses_pid可以控制core文件的文件名中是否添加pid作爲擴展。文件內容爲1,表示添加pid作爲擴展名,生成的core文件格式爲core.xxxx;爲0則表示生成的core文件同一命名爲core。
可通過以下命令修改此文件:
 echo "1" > /proc/sys/kernel/core_uses_pid

 2)proc/sys/kernel/core_pattern可以控制core文件保存位置和文件名格式。
 可通過以下命令修改此文件:
 echo "/corefile/core-%e-%p-%t" > core_pattern,可以將core文件統一生成到/corefile目錄下,產生的文件名爲core-命令名-pid-時間戳
 以下是參數列表:
    %p - insert pid into filename 添加pid
    %u - insert current uid into filename 添加當前uid
    %g - insert current gid into filename 添加當前gid
    %s - insert signal that caused the coredump into the filename 添加導致產生core的信號
    %t - insert UNIX time that the coredump occurred into filename 添加core文件生成時的unix時間
    %h - insert hostname where the coredump happened into filename 添加主機名
    %e - insert coredumping executable name into filename 添加命令名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章