ubuntu 12 04 GDB除錯常用指令

2021-07-25 05:32:39 字數 1153 閱讀 2496

編譯時必須加上引數-g ,例:g++ -g  -o hello  hello.c 通過gcc編譯生成可執行檔案才能用gdb進行除錯。

進入gdb介面:gdb hello 提示符變成(gdb)

(1)檢視檔案 原始碼

在gdb中鍵入」l」(list)就可以檢視所載入的檔案

(2)設定斷點

只需在」b」後加入對應的行號即可(或直接輸入函式名)。如下所示:(gdb)b 6  (gdb)b main**執行到第五行之前暫停(執行到main())。

(3)檢視斷點情況

(gdb) info b

(4) 刪除指定斷點,其斷點號為」info b」中的第一欄。若預設斷點號則刪除所有斷點

delete [斷點號]

(5) 停止指定斷點,使用」info b」仍能檢視此斷點。同delete一樣,省斷點號則停止所有斷點

disable [斷點號]]

(6) 啟用指定斷點,即啟用被disable停止的斷點

enable [斷點號]

(7)執行**

gdb預設從首行開始執行**,可鍵入」r」(run)即可(若想從程式中指定行開始執行,可在r後面加上行號)。

(8)檢視變數值

檢視斷點處的相關變數值。在gdb中只需鍵入」p」+變數值即可,如下所示:(gdb) p n gdb在顯示變數值時都會在對應值之前加上」$n」標記,它是當前變數值的引用標記,所以以後若想再次引用此變數就可以直接寫作」$n」,而無需寫冗長的變數名。

(9)單步執行

使用命令」n」(next)或」s」(step),它們之間的區別在於:若有函式呼叫的時候,」s」會進入該函式而」n」不會進入該函式。因此,」s」就類似於vc等工具中的」step in」,」n」類似與vc等工具中的」step over」。

(10)恢復程式執行

使用命令」c」(continue). 在gdb中,程式的執行狀態有「執行」、「暫停」和「停止」三種,其中「暫停」狀態為程式遇到了斷點或觀察點之類的,程式暫時停止執行,而此時函式的位址、函式引數、函式內的區域性變數都會被壓入「棧」(stack)中。故在這種狀態下可以檢視函式的變數值等各種屬性。但在函式處於「停止」狀態之後,「棧」就會自動撤銷,它也就無法檢視各種資訊了。

(11) 執行shell的command命令 

shell vi hello.c  (在需要執行的命令前加上 shell)

ubuntu12 04 gdb安裝使用

參考文件 新手筆記 安裝 wget tar xf gdb 7.8.tar.gz 2 按照readme中的步驟一步步執行 configure make make install 該步要一管理員身份執行 使用 1 使用gcc g 編譯原始檔的時候要加上 g引數 把除錯資訊加到可執行檔案中 否則會提示 r...

Ubuntu下的GDB除錯

gdb gnu debugger,是gnu工程為gnu作業系統開發的 偵錯程式,但它的使用不侷限於gnu作業系統,gdb可以執行 在unix linux甚至microsoft windows。gdb可以除錯c c objective c pascal ada等語言編 寫的程式 被除錯的程式可以跟gd...

Ubuntu下gdb除錯外部程式

身為程式設計師,debug是少不了的。本文簡單介紹一下在linux下如果除錯,如有錯誤請及時糾正。1 linux下除錯靜態庫 makefile cc gcc cxx g rm rm f cppflags g ldflags g ldlibs lfunctions ar ar srcs main.cp...