GDB除錯core檔案

2021-06-16 15:56:38 字數 783 閱讀 7800

1. 什麼是core dump?

core dump說的是作業系統執行的乙個動作,當某個程序因為一些原因意外終止(crash)的時候,作業系統會將這個程序當時的記憶體資訊轉儲(dump)到磁碟上,產生的檔案就是core檔案了,一般會以core.***形式命名。

2. 那些訊號能夠引起core dump?

經常用到的主要有這幾種:

sigsegv  建立core檔案   段非法錯誤 

sigill   建立core檔案   非法指令 

sigtrap  建立core檔案   跟蹤自陷 

sigbus   建立core檔案   匯流排錯誤 

sigfpe   建立core檔案   浮點異常 

sigiot   建立core檔案   執行i/o自陷

具體的那些訊號能產生core,可以在終端執行命令「man 7 signal」檢視。

3. 設定生成core檔案的環境

ulimit -c :檢視core檔案的大小的限制

ulimit -c unlimited :設定core檔案的大小為不限制

4. 除錯core檔案的相關命令

4.1 啟動命令:gdb exe_name core_name

4.2 具體的除錯命令:

backtrace :檢視堆疊資訊,可以簡寫成bt

where : 同bt

frame num :檢視堆疊中第num個frame的資訊,frame可以簡寫成f

focus num :檢視堆疊中第num個frame的具體**資訊,focus可以簡寫成foc。

GDB除錯core檔案

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

gdb除錯core檔案

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

gdb除錯core檔案

1 檢視哪個二進位制檔案生成core檔案,及其生成時間 file core core.2 載入core檔案 gdb exec file core file 3 檢視堆疊資訊 gdb btn代表檢視n層堆疊資訊,可選 4 列印當前函式的引數及其值 gdb info args 5 檢視執行緒資訊 gdb...