GDB是一套字符界面的程序集,能夠用它在linux上調試C和C++程序,它提供瞭如下的功能:linux
1 在程序中設置斷點,當程序運行到斷點處暫停函數
2 顯示變量的值,能夠打印或者監視某個變量,將某個變量的值顯示出來spa
3 單步執行命令行
4 運行時修改變量的值線程
5 跟蹤路徑調試
6 線程切換編譯
等等變量
下面以如下程序爲例file
當咱們要使用GDB進行程序的調試時,在用GCC編譯時須要加上-g,以下:程序
GDB之因此可以進行程序的調試也是在於進行編譯時的-g選項,當設置了這個選項的時候,GCC會向程序中塞入一下信息,做爲GDB調試時的鋪墊
,而後GDB纔可以利用這些鋪墊和信息與程序交互。
有兩種方式能夠進入GDB,一種就是直接在命令行上輸入gdb,而後再在gdb中用file命令加載要調試的程序:
另外一種就是,直接在命令行上使用:gdb 程序名
這兩種方法都是要在GDB中加載已經作了鋪墊的將被調試的程序。
進行GDB而且加載了程序後,咱們就能夠進行一系列的調試操做了:
1 用 "set args 參數值1 參數值2...."來設置輸入參數
2用「list 開始的行號"來打印內容
list 還能夠選取區間來打印代碼:
3.用 」b 位置"設置斷點
4.用 「run 參數」來運行程序
5.用"display 變量名「來顯示變量
6.用」c"來繼續運行程序
7.用set命令來改變變量的值
8用q命令來退出GDB
9 用p命令來打印變量的值
10 設置條件斷點
11 用delete刪除斷點
12 用info break 來顯示斷點信息
13.用bt來顯示函數調用路徑
14用whatis或者ptype來顯示變量的類型