Linux下coredump檔案的檢視

2021-06-21 01:54:45 字數 1263 閱讀 2377

linux

bt擴充套件

儲存工作c

linux下

core

檔案 

程式執行過程中,出現了如下資訊:

terminate called after throwing an instance of 'std::bad_alloc'

what():  st9bad_alloc

aborted (core dumped)

當我們的程式崩潰時,核心有可能把該程式當前記憶體對映到core檔案裡,方便程式設計師找到程式出現問題的地方。最常出現的,幾乎所有c程式設計師都出現過的錯誤就是「

段錯誤」

了。也是最難查出問題原因的乙個錯誤

何謂core檔案?

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

檢視core檔案

# gdb peer_tracker.wd  core.3189

(peer_tracker.wd

為執行的檔案)

(gdb) bt

使用bt

命令(或用where代替bt)可以檢視崩潰時的堆疊資訊

附: 1.core檔案的生成開關和大小限制

1)使用

ulimit -c命令可檢視

core

檔案的生成開關。若結果為

0,則表示關閉了此功能,不會生成

core

檔案。

2)使用

ulimit -c filesize

命令,可以限制

core

檔案的大小(

filesize

的單位為

kbyte

)。若ulimit -c unlimited,則表示

core

檔案的大小不受限制。如果生成的資訊超過此大小,將會被裁剪,最終生成乙個不完整的

core

檔案。在除錯此

core

檔案的時候,

gdb會提示錯誤。

2.core檔案的名稱和生成路徑

core檔案生成路徑:

輸入可執行檔案執行命令的同一路徑下。

若系統生成的

core

檔案不帶其它任何擴充套件名稱,則全部命名為

core

。新的core

檔案生成將覆蓋原來的

core

檔案。

linux下core dump的妙用

在unix系統中,常將 主記憶體 main memory 稱為核心 core 因為在使用半導體作為記憶體材料之前,便是使用核心 core 而核心映像 core image 就是 程序 process 執行當時的記憶體內容。當程序發生段錯誤或收到 訊號 signal 而終止執行時,系統會將核心映像寫入...

Linux下core dump (段錯誤)

在linux下開發時,如果程式突然崩潰了,也沒有任何日誌。這時可以檢視core檔案。從core檔案中分析原因,通過gdb看出程式掛在 分析前後的變數,找出問題的原因。當程式執行的過程中異常終止或崩潰,作業系統會將程式當時的記憶體狀態記錄下來,儲存在乙個檔案中,這種行為就叫做core dump 中文有...

linux 下如何開啟core dump檔案開關

在linux下面就簡單的許多。只要開啟相應的開關,linux會自動在程式crash時生成相應的core檔案。這個檔案和window下的dump檔案類似。下面是簡單的一些步驟 1.檢視當前是否已經開啟了此開關 通過命令 ulimit c 如果輸出為 0 則代表沒有開啟。如果為unlimited則已經開...