Linux Coredump 配置生成例項

2021-09-29 09:20:56 字數 2197 閱讀 3704

coredump是linux程式執行時的記憶體映象,當程式發生異常**獲儲存,用於程式除錯分析。

為程式儲存coredump(又稱core)檔案需要系統配置支援。

# ulimit -c

0# ulimit -c unlimited

# ulimit -c 1024

0表示不生成檔案。可以通過 ulimit -c 設定乙個大小,單位為kb,不限制則使用unlimited

通過命令設定只會在當前控制台生效,若要永久生效,則需要改/etc/security/limits.conf檔案。

如里大小設定的小了會怎麼樣:

bfd: warning: /var/core/core_core_dump is truncated: expected core file size >= 245760, found: 12288.

在除錯時會提示上面的警告。大小需根據程式實際記憶體占用情況評估。

預設coredump檔案存在在程式執行的目錄下。

/etc/sysctl.conf  中可以配置core檔案的儲存路徑和檔案的命名格式。

如:kernel.core_pattern = /var/core/core_%e

配置引數還有:

%c 轉儲檔案的大小上限

%e 所dump的檔名

%g 所dump的程序的實際組id

%h 主機名

%p 所dump的程序pid

%s 導致本次coredump的訊號

%t 轉儲時刻(由2023年1月1日起計的秒數)

%u 所dump程序的實際使用者id

配置後,可以通過 sysctl  -p 命令生效。

#include void func()

int main()

編譯執行(編譯帶-g引數,保留除錯資訊)

# gcc -o core_dump core_dump.c -g

# ./core_dump 

segmentation fault (core dumped)

除錯:

# gdb ./core_dump /var/core/core_core_dump 

gnu gdb (gdb) red hat enterprise linux 7.6.1-115.el7

license gplv3+: gnu gpl version 3 or later this is free software: you are free to change and redistribute it.

there is no warranty, to the extent permitted by law. type "show copying"

and "show warranty" for details.

this gdb was configured as "x86_64-redhat-linux-gnu".

for bug reporting instructions, please see:

...reading symbols from /wayne/programs/debug/core_dump...done.

[new lwp 20335]

core was generated by `./core_dump'.

program terminated with signal 11, segmentation fault.

#0 0x00000000004004dd in func () at core_dump.c:6

6 *ptr = 10;

missing separate debuginfos, use: debuginfo-install glibc-2.17-260.el7_6.6.x86_64

(gdb) bt

#0 0x00000000004004dd in func () at core_dump.c:6

#1 0x00000000004004f3 in main () at core_dump.c:11

(gdb) quit

abrt是乙個監控應用程序崩潰的服務,其會收集程式包括coredump檔案在內的相關異常印象,方便問題排查。

相關配置在/etc/abrt下。

abrt

Linux core dump的除錯技術(1)

有的程式可以通過編譯,但在執行時會出現segment fault 段錯誤 這通常都是指標錯誤引起的.以下是我們詳細的對linux core dump的除錯技術進行的介紹,想能幫助大家 1.linux core dump 前言 有的程式可以通過編譯,但在執行時會出現segment fault 段錯誤 ...

Linux core dump檔案介紹及除錯

1.core檔案的簡單介紹 在乙個程式崩潰時,它一般會在程式的當前目錄下生成乙個core檔案。core檔案僅僅是乙個記憶體映象 同時加上除錯資訊 主要是用來除錯的。2.開啟或關閉core檔案的生成 以下命令可以檢查生成core檔案的選項是否開啟 ulimit a 該命令將顯示所有的使用者定製,其中選...

Linux core dump 分析及相關除錯

core是core dump檔案,是linux伺服器的一種機制。core是個程式的嚴重問題,會致使程式直接掛掉,需要恢復。core檔案產生原因很多,有主動core 請求的,也有是程式的非法操作導致os傳送sigsegv相關的訊號。主動core的方法 1 程式在執行中,需要檢視裡面的程序或者執行緒的運...