本文講述了實現
core
檔案自動生成的配置方法,具體執行步驟如下:
1.
編輯環境配置檔案,讓
shell
啟動時自動設定
ulimit
登陸 linux 伺服器,任意位置鍵入 echo"ulimit -c 1024" >> /etc/profile 退出 linux 重新登陸 linux
鍵入 ulimit -c, 如果顯示 1024 那麼說明 coredump 已經被開啟。
1024
制產生的 core 檔案限的大小不能超過 1024kb,可以使用引數unlimited,取消該限制 ulimit -c unlimited
vi /etc/profile
ulimit -c unlimited > /dev/null2>&1
2.
更改core
檔案生成路徑
/proc/sys/kernel/core_uses_pid
可以控制產生的 core檔案的檔名中是否新增 pid 作為擴充套件 ,如果新增則檔案內容為 1 ,否則為 0
/proc/sys/kernel/core_pattern
可以設定格式化的 core檔案儲存位置或檔名,比如原來檔案內容是 core-%e
可以這樣修改 :
echo "/corefile/core-%e-%p-%t"> core_pattern
將會控制所產生的 core檔案會存放到/corefile 目錄下,產生的檔名為 core- 命令名 -pid- 時間戳
以下是引數列表 :
%p -insert pid into filename
新增 pid
%u - insertcurrent uid into filename
新增當前 uid
%g - insert current gidinto filename
新增當前 gid
%s - insert signal thatcaused the coredump into the filename
新增導致產生 core的訊號
%t - insert unix time thatthe coredump occurred into filename
新增 core檔案生成時的 unix 時間
新增主機名
%e -insert coredumping executable name into filename
新增命令名
vi /etc/sysctl.conf
kernel.core_uses_pid = 1
kernel.core_pattern=/tmp/core-%e-%p
3.sysctl
配置生效
sysctl -p /etc/sysctl.conf
這樣就可以實現以後發生
coredump
時,core
檔案就可以自動生成到
/tmp
目錄下。方便除錯!
除錯
core
gcc -o main -g a.c
gdb main /tmp/core-main-10815
參考:
Linux環境崩潰生成core檔案以及除錯
步驟很詳細具體,很有幫助,所以 windows環境崩潰問題可根據vs除錯工具檢視,linux同樣可以檢視呼叫堆疊的資訊,只是 需要更改linux設定,使程式崩潰時候產生core檔案。然後gdb除錯即可。1產生core檔案方法 產生coredump的條件,首先需要確認當前會話的ulimit c,若為0...
Linux生成core檔案 core檔案路徑設定
在linux下產生並除錯core檔案 先看看我用的是個什麼機器 uname a linux dev 2.4.21 9.30axsmp 1 smp wed may 26 23 37 09 edt 2004 i686 i686 i386 gnu linux 再看看預設的一些引數,注意core file ...
Linux生成core檔案 core檔案路徑設定
在linux下產生並除錯core檔案 先看看我用的是個什麼機器 uname a linux dev 2.4.21 9.30axsmp 1 smp wed may 26 23 37 09 edt 2004 i686 i686 i386 gnu linux 再看看預設的一些引數,注意core file ...