linux下使用GDB除錯程式

2021-07-11 14:37:34 字數 1214 閱讀 4831

現有一c原始檔「gdb-01.c」,下面用gdb除錯該程式。

/*gdb-01.c*/

#include

static

int sum(int

value);

int main(int argc, char *argv)

int input = argv[1] - '0';

int result = sum(input);

printf("你輸入的值為:%d,計算結果為:%d\n",input,result);

return0;}

/*累加求和函式*/

static

int sum(int

value)

return result;

}

首先用gcc編譯「gdb-01.c」生成可執行檔案test,為了能用gdb除錯改程式,需要在編譯時加入『-g』選項。命令如下:

$ gcc -o test gdb-01.c -g

引導程式。用下面的命令將可執行檔案test載入到gdb中,並進入(gdb)模式:

$ gdb test

設定輸入引數。通常可執行檔案在執行的時候需要輸入引數,gdb中使用如下命令格式:」set args value1 value2 …」。例如,test中將乙個引數(如3)傳入程式:

(gdb) set args 3

列印**內容。命令list用於列出可執行檔案對應原始檔的**,命令格式為「list 開始的行號」,然後每次按enter鍵後順序向下列出**。

(gdb) list 1

設定斷點。b 命令在某一行設定斷點,程式執行到斷點的位置會中斷。

(gdb) b 24

執行程式。gdb在預設的情況下是不會讓可執行檔案執行的。此時,程式並沒有真正執行起來,只是裝載進了gdb中。要是程式執行需要輸入run命令。

(gdb) run 3

顯示變數。在程式執行到第5步所設定的斷點時,程式中斷等待進一步指令。此時,可以進行一系列操作,其中,命令display可以顯示變數的值。

(gdb) display result #顯示變數result的值

修改變數的值。用set命令。

(gdb) set result = 6

(gdb) c #繼續執行

退出gdb。除錯完程式後,使用q命令退出gdb。

(gdb) q

$ #返回使用者模式

Linux下GDB除錯程式

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