linux 生成core 檔案,並除錯

2021-08-15 02:10:25 字數 1674 閱讀 8847

本文講述了實現

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 ...