GDB除錯多執行緒core檔案

2021-10-05 06:57:51 字數 303 閱讀 3320

在linux下程式崩潰時,一般會在指定目錄下生成乙個core檔案。core檔案僅僅是乙個記憶體映象(同時加上除錯資訊),主要是用來除錯的,接下來我們通過乙個案例觀察怎麼利用gdb除錯core檔案。

在命令列中鍵入 gdb 《可執行檔案》 < core檔案》:

進入gdb命令列中:

鍵入 bt 可以檢視程式終止執行緒的堆疊:

但是有時錯誤不是發生在這個堆疊上。

鍵入 info threads 檢視所有執行緒:

鍵入 t 85 轉換到thread 85中:

鍵入 bt 檢視thread 85的堆疊:

GDB除錯core檔案

1.什麼是core dump?core dump說的是作業系統執行的乙個動作,當某個程序因為一些原因意外終止 crash 的時候,作業系統會將這個程序當時的記憶體資訊轉儲 dump 到磁碟上,產生的檔案就是core檔案了,一般會以core.形式命名。2.那些訊號能夠引起core dump?經常用到的...

GDB除錯core檔案

core檔案是程式執行狀態的記憶體映像當程式執行過程 現segmentation fault core dumped 錯誤時,程式停止執行,並產生core檔案。使用gdb除錯core檔案可以幫我們快速定位程式出現段錯誤的位置。可執行程式編譯時應加上 g編譯選項,生成除錯資訊閉。當程式訪問的記憶體超出...

gdb除錯core檔案

本人最近正在學習除錯技術,此處對棧溢位做一些總結。gdb的基本使用就不多扯了。主要針對發行在外的release版本的軟體出現問題時的除錯。一般來講,檢視堆疊就是使用bt,這個時候加上bt full會讓你更加滿意,因為這裡面可以顯示出區域性變數資訊。另一點是檢視暫存器中的值,主要是sp和ip。指令 i...