core dump
阿新 • • 發佈:2020-12-18
core dump
當程式執行的過程中異常終止或崩潰,作業系統會將程式當時的記憶體狀態記錄下來,儲存在一個檔案中(core檔案),這種行為就叫做 Core Dump 或者叫做 ‘核心轉儲’,利用 coredump 可以幫助我們快速定位程式崩潰位置ulimit -c檢視是否開啟,如果輸出為0
,則沒有開啟。需要執行ulimit -c unlimited開啟core dump功能。開啟後執行ulimit -c輸出unlimited在配置檔案中設定core檔案的名稱和生成路徑。沒有進行設定的話,預設生成的core檔案不帶其它任何副檔名稱,全部命名為core。新的core檔案生成將覆蓋原來的core檔案 。參考:Linux下core dump、Coredump 詳解、Linux生成core檔案、core檔案路徑設定
基本GDB命令
為了定位問題,常常需要進行單步跟蹤,設定斷點之類的操作。
下邊列出了GDB一些常用的操作。
- 啟動程式:run
- 設定斷點:b 行號|函式名
- 刪除斷點:delete 斷點編號
- 禁用斷點:disable 斷點編號
- 啟用斷點:enable 斷點編號
- 單步跟蹤:next (簡寫 n)
- 單步跟蹤:step (簡寫 s)
- 列印變數:print 變數名字 (簡寫p)
- 設定變數:set var=value
- 檢視變數型別:ptype var
- 順序執行到結束:cont
- 順序執行到某一行: util lineno
- 列印堆疊資訊:bt
參考:Linux生成core檔案、core檔案路徑設定