linux下如何用GDB除錯c 程式

2021-06-22 06:24:39 字數 1060 閱讀 3579

gdb 是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc、bcb等ide的除錯,但如果你是在 unix平台下做軟體,你會發現gdb這個除錯工具有比vc、bcb的圖形化偵錯程式更強大的功能。所謂「寸有所長,尺有所短」就是這個道理。 一般來說,gdb主要幫忙你完成下面四個方面的功能:

啟動你的程式,可以按照你的自定義的要求隨心所欲的執行程式。

可讓被除錯的程式在你所指定的調置的斷點處停住。(斷點可以是條件表示式)

當程式被停住時,可以檢查此時你的程式中所發生的事。

動態的改變你程式的執行環境。

從上面看來,gdb和一般的除錯工具沒有什麼兩樣,基本上也是完成這些功能,不過在細節上,你會發現gdb這個除錯工具的強大,大家可能比較習慣了圖形化的除錯工具,但有時候,命令列的除錯工具卻有著圖形化工具所不能完成的功能。讓我們一一看來。

gdb基本命令列表:   

例項:

1 新建乙個原始檔vi swap.cc

原始檔內容如下:

#include

using namespace std;

void swap(int &a,int &b)

int main()

{int i,j;

cout<>i>>j;

cout<

直接複製貼上生成原始檔

2.生成可執行檔案 g++ -g -o swap swap.cc,注意必須使用

-g引數,編譯會加入除錯資訊,否則無法除錯執行檔案

3.啟動除錯 gdb swap

3.1  檢視原始檔 list 1,回車重複上一次指令

3.2設定除錯斷點 break 16,在第16行設定斷點,info break檢視斷點資訊(亦可使用縮寫i b )

3.3 除錯  執行 輸入run 或者r 

3.3 單步除錯,step 或者 s進入函式內部

3.4檢視變數print b 或者 p b

3.5檢視函式堆疊bt,退出函式finish

3.6  繼續執行直到下乙個斷點或主函式結束continue或者c

3.7 退出除錯 輸入q

linux下如何用GDB除錯c 程式

gdb 是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在 unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb的圖形化偵錯程式更強大的功能。所謂 寸有所長,尺有所短 就是這個道理。一般來說,gdb主...

linux下如何用GDB除錯c 程式

gdb 是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在 unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb的圖形化偵錯程式更強大的功能。所謂 寸有所長,尺有所短 就是這個道理。一般來說,gdb主...

linux下如何用GDB除錯c 程式

gdb 是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在 unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb的圖形化偵錯程式更強大的功能。所謂 寸有所長,尺有所短 就是這個道理。一般來說,gdb主...