天天看點

用gdb分析core檔案及常見gdb指令操作示例

1.概述

在實際的軟體開發項目中,程式出現問題是在所難免的。遙想本人參加工作之後首次遇到程式的情景,至今還曆曆在目。之前的經驗告訴我,我們越是驚慌失措,問題就越是解決不了。我們要先讓自己平靜下來,然後再尋找解決程式問題的辦法。

本文以一個實際的程式為例,介紹了用gdb分析core檔案的方法和步驟,同時示範了常見gdb指令的操作方法。如果大家想對相關gdb指令有更多的了解,請自行百度之。

2.示例程式

3.用gdb分析core檔案

在Linux上用“gcc -g -o GdbDebug GdbDebug.c”指令對程式進行編譯之後,運作“GdbDebug”指令,發現在目前目錄下出現了core檔案。利用gdb指令對core檔案進行分析的過程如下所示:

從以上分析可知,執行GdbDebug.c檔案的第64行時程式core掉了。此時仔細分析程式,發現pCtrStr指針為空。當對一個不存在的指針取長度時,由于找不到位址,程式便崩潰了。修改的辦法也非常的簡單,隻需要讓pCtrStr指針指向具體的位址即可。

4.常見gdb指令操作示例

修改之後的代碼如下:

編譯并運作之後,程式正常,說明問題已被我們解決掉。下面是常見的gdb指令的操作示例:

作為Linux下調試C/C++程式的工具,大家一定要熟練掌握gdb的用法。