GDB除錯程式的使用

2021-07-14 14:44:00 字數 1573 閱讀 4966

gdb概述:

gdb是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc、bcb等ide的除錯,但如果你是在unix平台下做軟體,你會發現gdb這個除錯工具有比vc、bcb的圖形化偵錯程式更強大的功能。

一般來說gdb主要有三大功能:

1)啟動被除錯函式

2)讓被除錯的程式在指定位置停住

3) 當程式停住時,檢查它的狀態值

gdb的使用:

舉下面的程式為例:

寫完程式之後,輸入「 gcc  -g  gdb.c 」 和 「 gcc a.out 」 啟動gdb對程式的除錯。

gdb的指令:

執行指令:run(簡寫「r」);

設定中斷指令:break  行數(簡寫「b」):;

檢視**指令:list

在gdb中使用檢視源**相關的命令時,有乙個當前檔案的概念,當命令的位置引數沒有限定乙個檔案的時候(不論是明確限定還是隱含限定),將使用當前檔案。當前檔案預設是main函式所在檔案,如果程式當前正處於斷點位置,則斷點所在檔案即為當前檔案。

如下圖:

會發現函式不是從頭開始顯示,這是因為

當前行不是從頭開始的程式只能;且每次顯示10行左右,這是可以改變引數值的。

引申的指令:

list - :顯示當前

行前面程式。出現

list  +: 往後顯示源**。
set listsize 設定一次顯示源**的行數
list , 顯示從當前行到last行之間的源**
檢視狀態值指令:print  變數名(簡寫 p)
檢視斷點資訊指令:info  break
單步執行指令:next(不會進入子函式)
step(可進入子函式)
繼續執行指令:continue(簡寫「c」,在斷點處繼續執行,知道遇到下乙個斷點或者程式結束)
finish(繼續執行,結束此函式)
退出指令:quit
運用gdb除錯段錯誤
如下段程式:
#include

int main()
執行程式之後發現出現段錯誤了,執行gdb指令在**停住,**就是出現段錯誤的地方,便於我們修改。

使用GDB除錯程式

gdb是gnu發布的一款功能強大的程式除錯工具。gdb主要完成下面三個方面的功能 1.啟動被除錯程式 2.讓被除錯的程式在指定的位置停住 3.當程式被停住時,可以檢查程式狀態 如變數值 假如要對程式test.c進行除錯,除錯流程為 1.編譯生成可執行檔案 gcc g test.c o test 2....

使用GDB除錯程式

上回話說 使用makefile來組織源 這回簡單地介紹下如何使用gdb來除錯我們的程式 關於gdb的其它應用將在後續的章節中逐漸深入。首先需要肯定一點,gdb是個功能異常強大的除錯工具,其本身只能執行於字元模式,但是當前眾多基於gui的偵錯程式 ide,無論是自由軟體還是商業軟體,絕大多數都使用gd...

GDB除錯程式

gdb的三個功能 1 啟動被除錯的程式 2 設定斷點 3 設定斷點之後可以檢查程式的狀態 1.編譯生成可執行檔案 注意 g 除錯選項 gcc g tst.c o tst 2.啟動gdb gdb tst 3.在main函式處設定斷點 break main 4.執行程式 run5.利用 更加豐富的 gd...