#include int main(int argc, char *ar**)
gcc -g gdb.c -o 1gdb ./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 ...