linux下用core和gdb查詢出現 段錯誤

2021-07-11 12:18:10 字數 933 閱讀 5845

有些時候我們在一段c**的時候,由於對乙個非法記憶體進行了操作,在程式執行的過程中,出現了"段錯誤"。

當我們的程式崩潰時,核心有可能把該程式當前記憶體對映到core檔案裡,方便程式設計師找到程式出現問題的地方。

什麼是core dump?

core的意思是記憶體,dump的意思是扔出來,堆出來。

為什麼沒有core檔案生成呢?

有時候程式down了,但是core檔案卻沒有生成.core檔案的生成跟你當前系統的環境設定有關係,可以用下面的語句設定一下便生成core檔案了

ulimit  -c  unlimited

core 檔案生成的位置一般於執行程式的路徑相同,在ubuntu下檔名一般 為core.

什麼是core檔案

當乙個程式奔潰時,在程序當前工作目錄的core檔案中複製了該程序的儲存影象。core檔案僅僅是乙個記憶體映像(同時加上除錯資訊),主要用來除錯的。

下面我們來看看,怎樣利用core檔案來定位我們出現"段錯誤"的地方.

程式執行結果:

從上面我們可以看出,第一次執行程式出現"段錯誤"並沒有出現core檔案,一般linux作業系統預設core檔案的大小都是0,需要手動設定一下。

除錯core檔案

core檔案是個二進位制檔案,需要用相應的工具來分析程式崩潰時的記憶體映像。

linux下可以用gdb來除錯core檔案 。

從上面我們可以清楚的看到我們的程式是在那個地方出現了錯誤。

用gdb工具分析core檔案

在unix系統下,應用程式崩潰,一般會產生core檔案,如何根據core檔案查詢問題的所在,並做相應的分析和除錯,是非常重要的,本文對此做簡單介紹。例如,乙個程式cmm test tool在執行的時候發生了錯誤,並生成了乙個core檔案,如下 rw r r 1 root cmm test tool....

用gdb工具分析core檔案

在unix系統下,應用程式崩潰,一般會產生core檔案,如何根據core檔案查詢問題的所在,並做相應的分析和除錯,是非常重要的,本文對此做簡單介紹。例如,乙個程式cmm test tool在執行的時候發生了錯誤,並生成了乙個core檔案,如下 rw r r 1 root cmm test tool....

Linux下core檔案的生成和使用

當程式異常終止時,核心有可能把該程式當前的記憶體資訊對映到core檔案裡,以方便程式設計師定位問題。也就是說core檔案是程序異常終止時的乙個記憶體映象,可以用gdb來開啟core檔案,協助分析程式問題。unix環境高階程式設計 第10章種講到 當程式接收到以下訊號時會產生core檔案。名字說明 f...