段錯誤是在程式設計中造成程式異常中斷退出的主要原因之一,並且不易覺察,也許很快發現,也有可能程式執行很長一段時間才發生段錯誤。正因為段錯誤發生的不確定性,所以除錯段錯誤是乙個很耗時的過程。
最常用的除錯工具就屬gdb了,但是利用gdb來設定斷點來單步除錯很麻煩耗時,因為根本就不知道何處產生的段錯誤。這裡介紹一種快速定位段錯誤地點的方法,gdb結合core檔案。
1.首先輸入ulimit -c unlimited來設定系統對core檔案大小不限制
2.編譯程式時加上-g選項,-g產生供gdb除錯用的可執行檔案
3.輸入gdb 程式可執行檔案 core檔案 然後輸入bt即可檢視產生段錯誤的地點了
雖然段錯誤能通過除錯來解決,但是最好的方法是從源頭避免產生段錯誤,具有良好的程式設計規範比花太多的時間去除錯重要得多。
gbd 分析core檔案 gdb core檔案除錯
core檔案在什麼位置建立 在 程序當前工作目錄的下建立。通常與程式在相同的路徑下。但如果程式中呼叫了chdir函式,則有可能改變了當前工作目錄。這時core檔案建立在 chdir指定的路徑下。有好多程式崩潰了,我們卻找不到core檔案放在什麼位置。和chdir函式就有關係。當然程式崩潰了不一定都產...
core檔案除錯
在程式不尋常退出時,核心會在當前工作目錄下生成乙個core檔案 是乙個記憶體映像,同時加上除錯資訊 使用gdb來檢視core檔案,可以指示出導致程式出錯的 所在檔案和行數。1.core檔案的生成開關和大小限制 1 使用ulimit c命令可檢視core檔案的生成開關。若結果為0,則表示關閉了此功能,...
linux core檔案除錯
在完成公司專案,測試程序的時候,經常會發現日誌到了某一段特定的 的時候就沒了,程序直接退出,也沒有捕獲到任何的異常資訊,如果日誌列印的較多還可能比較容易發現問題,如果日誌較少,就很難進行進一步的查錯了。但是發現在該目錄下生成了乙個core檔案,可以幫助我們查詢程式崩潰的原因。在linux系統下,如果...