gdb 中使用 core 除錯段錯誤

2021-09-30 08:32:23 字數 533 閱讀 7014

如果我們執行生成檔案a.out(./a.out)時出現段錯誤,我們可以使用產生的 core 檔案來快速定位錯誤產生的地方(哪個檔案中的哪行?)。

如果執行「./a.out」時沒有產生名叫 core 的檔案,可能是因為系統限制了產生的 core 檔案大小。使用「ulimit -c」檢視 core 檔案大小的限制值,它有可能是0 。 我們可以使用命令 「ulimit -c 數字」來重新設定 core 檔案的大小(單位可能是k),也可以使用命令「ulimit -c unlimited」來設定不限制 core 檔案大小。

重新設定好 core 檔案的大小後,我們再次執行「./a.out」就會產生名叫 core 的檔案了。

使用 gdb 和 core 檔案除錯執行檔案a.out:

配合 gdb 下面常用的堆疊跟蹤命令(如「frame 數字」和「bt」等等)就可以快速定位段錯誤的位置。

gdb 除錯段錯誤

開發嵌入式linux的時候經常會遇到segmentation fault,也就是段異常錯誤,一般是使用錯誤的指標訪問記憶體導致。這種錯誤可以通過開啟核心的異常資訊輸出,再用gdb對發生段異常的位址進行定位。1.開啟核心的異常資訊輸出 mips的核心 關閉了arch mips mm fault.c的d...

gdb 除錯段錯誤

利用執行時產生core檔案,再利用gdb除錯找出段錯誤在哪一行 ulimit c unlimited使用該bash命令,可以使執行時段錯誤產生core檔案。1.gcc g 編譯 gcc g o a a.c2.執行檔案,便會產生乙個core.檔案 a3.除錯core檔案 gdb a core.便可以直...

gdb除錯段錯誤

一 gdb的除錯命令。c語言是 cc g tst.c o tst c 是g g o 生成的檔案 file.cpp c 除錯程式命令 gdb file 啟動,羅列 行數ist 1,break 行數 info break,run r 除錯執行,step s 單步除錯,檢視變數 print p 變數名,檢...