GDB是一套字符界面的程序集,可以用它在linux上調(diào)試C和C++程序,它提供了以下的功能:
1 在程序中設(shè)置斷點(diǎn),當(dāng)程序運(yùn)行到斷點(diǎn)處暫停
2 顯示變量的值,可以打印或者監(jiān)視某個(gè)變量,將某個(gè)變量的值顯示出來
3 單步執(zhí)行
4 運(yùn)行時(shí)修改變量的值
5 跟蹤路徑
6 線程切換
等等
下面以以下程序?yàn)槔?/p>
當(dāng)我們要使用GDB進(jìn)行程序的調(diào)試時(shí),在用GCC編譯時(shí)需要加上-g,如下:
GDB之所以能夠進(jìn)行程序的調(diào)試也是在于進(jìn)行編譯時(shí)的-g選項(xiàng),當(dāng)設(shè)置了這個(gè)選項(xiàng)的時(shí)候,GCC會(huì)向程序中塞入一下信息,作為GDB調(diào)試時(shí)的鋪墊
,然后GDB才能夠利用這些鋪墊和信息與程序交互。
有兩種方式可以進(jìn)入GDB,一種就是直接在命令行上輸入gdb,然后再在gdb中用file命令加載要調(diào)試的程序:
另一種就是,直接在命令行上使用:gdb 程序名
這兩種方法都是要在GDB中加載已經(jīng)做了鋪墊的將被調(diào)試的程序。
進(jìn)行GDB并且加載了程序后,我們就可以進(jìn)行一系列的調(diào)試操作了:
1 用 "set args 參數(shù)值1 參數(shù)值2...."來設(shè)置輸入?yún)?shù)
2用“l(fā)ist 開始的行號(hào)"來打印內(nèi)容
list 還可以選取區(qū)間來打印代碼:
3.用 ”b 位置"設(shè)置斷點(diǎn)
4.用 “run 參數(shù)”來運(yùn)行程序
5.用"display 變量名“來顯示變量
6.用”c"來繼續(xù)運(yùn)行程序
7.用set命令來改變變量的值
8用q命令來退出GDB
9 用p命令來打印變量的值
10 設(shè)置條件斷點(diǎn)
11 用delete刪除斷點(diǎn)
12 用info break 來顯示斷點(diǎn)信息
13.用bt來顯示函數(shù)調(diào)用路徑
14用whatis或者ptype來顯示變量的類型
-
Linux
+關(guān)注
關(guān)注
88文章
11763瀏覽量
219079 -
gdb
+關(guān)注
關(guān)注
0文章
61瀏覽量
13889
發(fā)布評(píng)論請(qǐng)先 登錄
深入RK3588內(nèi)核:rockchip_linux_defconfig的作用與調(diào)試價(jià)值
Linux系統(tǒng)性能調(diào)試工具—strace
DR1平臺(tái)Linux應(yīng)用開發(fā)指南:含GDB調(diào)試、Python及MQTT實(shí)戰(zhàn)
探索DSC Multilink:調(diào)試利器的技術(shù)剖析
如何調(diào)試和編程CW32F030C8T7?支持哪些調(diào)試工具和編程語(yǔ)言?
ElfBoard技術(shù)貼|如何在【RK3588】ELF 2開發(fā)板進(jìn)行GDB調(diào)試
蜂鳥的GDB調(diào)試時(shí)無法在斷點(diǎn)處停止是什么原因?
?STMicroelectronics AEK-MCU-SPC5LNK 編程調(diào)試器技術(shù)解析
MPLAB? PICkit?5 內(nèi)電路調(diào)試器技術(shù)解析與應(yīng)用指南
?MPLAB? PICkit? Basic調(diào)試器技術(shù)解析與應(yīng)用指南
信捷XS STUDIO編程軟件V2.3.2版本的全新功能
【干貨分享】RT-Trace國(guó)產(chǎn)調(diào)試工具 | 技術(shù)集結(jié)
國(guó)產(chǎn)!全志T113-i 雙核Cortex-A7@1.2GHz 工業(yè)開發(fā)板—GDB程序調(diào)試方法說明
linux編程GDB調(diào)試功能
評(píng)論