core dump檔案的生成

2022-09-06 17:42:13 字數 681 閱讀 9285

#include int main(int argc, char *ar**)

gcc  -g gdb.c -o 1

gdb ./1 core

1.  生成core dump檔案的方法:

$ ulimit -c //檢視是否為0

如果為0

$ ulimit -c unlimited

這樣在程式崩潰以後會在當前目錄生成乙個core的檔案

1.  除錯core dump檔案

生成了core檔案以後

$ gdb ./1 core

就會恢復現場到你的程式崩潰的那一刻

(gdb)bt //這個命令會列出程式崩潰時的堆疊資訊,一層一層會有標號 #0 #1 #2 .......

如果你要檢視某一層的資訊,你需要在切換當前的棧,一般來說,程式停止時,最頂層的棧就是當前棧,如果你要檢視棧下面層的詳細資訊,首先要做的是切換到你想看的棧

(gdb)f n //n是你想要切換的棧的標號,達到後可以用 『p 變數』 檢視變數的值,以查詢異常出現的原因

info args

列印出當前函式的引數名及其值。

info locals

列印出當前函式中所有區域性變數及其值。

info catch

列印出當前的函式中的異常處理資訊。

設定core dump檔案生成的方法

在linux平台下,設定core dump檔案生成的方法 1 在終端中輸入ulimit c 如果結果為0,說明當程式崩潰時,系統並不能生成core dump。2 使用ulimit c unlimited命令,開啟core dump功能,並且不限制生成core dump檔案的大小。如果需要限制,加數字...

容器內生成core dump檔案

有時候docker容器中的程式可能出現類似段錯誤,此時要去跟蹤問題的話有core dump會方便很多 但是容器中有時候還不一定能夠生成core dump檔案,需要做如下事情 1 啟動容器時,增加 privileged選項 2 容器啟動後,通過 ulimit c unlimited 以使能產生core...

linux下生成coredump檔案

1產生core檔案方法 產生coredump的條件,首先需要確認當前會話的ulimit c,若為0,則不會產生對應的coredump,需要進行修改和設定。ulimit c unlimited 可以產生coredump且不受大小限制 這種設定僅對當前生效,如果想永久生效 可以用 source etc ...