天天看點

ubuntu 下怎麼生成core dump檔案

ulimit -a                            //檢視

ulimit -c unlimited             //設定core檔案大小不限

編譯時加入-g 選項

運作程式./a.out,如果發生斷錯誤,會在工作目錄自動生成一個core檔案

用gdb調試:gdb -c core  //打開gdb調式core

file ./a.out                          //加載二進制

bt                                      //列印堆棧資訊

1 ulimited -c unlimited

2 g++ -g -lpthread Test.c -o t

3 ./t 5             //産生core, 接下來進行gdb調試

4 gdb -c core

5 file ./t

6 bt               // 發現并沒有列印錯誤行

注意:當執行完bt都沒有列印錯誤在哪一行時,隻有靠設定斷點來進行定位咯

l            //列印代碼清單按enter  //進行下面列印

b 28       // 在28行加入斷點

b 34       // 在34行加入斷點

b 43       // 在43行加入斷點

r           //運作程式

c         //繼續運作,發現在34行這有錯且列印

最後終于知道錯誤是if判斷這裡失誤造成!哈哈,gdb可不簡單哦。

繼續閱讀