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...