常用GDB命令及解釋

2021-08-18 21:04:10 字數 2169 閱讀 6819

ps:一些gdb命令可簡寫,如li(list),c(cont)(continue),q(quit),b(break),s(step),n(next),p(print)等

常用除錯方法:

gcc -g test.c -o test

gdb 程式檔名除錯乙個程式的命令格式(會顯示版權說明)

gdb -q 程式檔名  或

gdb -q

(gdb)file 程式檔名除錯乙個程式的命令格式(不會顯示版權說明)

list

顯示10行**,若再次執行該命令則顯示接下來的10行**

list 5,10

顯示第5行到第10行的**

list test.c:5,10

顯示原始檔test.c中的第5行到第10行的**,在除錯含有多個原始檔的程式時使用。

list get_sum

顯示get_sum函式周圍的**

list test.c:get_sum

顯示原始檔test.c中get_sum函式周圍的**,在除錯含有多個原始檔的程式時使用。

help

列出對應命令幫助資訊,+all則列出所有gdb命令的幫助資訊

search/forward 字串

從當前行向後查詢第乙個匹配的字串

reverse-search 字串

從當前行向前查詢第乙個匹配的字串

run執行開啟的可執行檔案

break

設定斷點,支援的形式有break 行號、break 函式名稱、break 行號或函式名 if 條件

watch 條件表示式

在程式中設定觀測點(與break的三種用法相似)

awatch 條件表示式

在程式中設定觀測點,在表示式的值發生改變或表示式的值被讀取時,程式暫停執行

clear 行號/函式名

刪除設定在指定行號或函式上的斷點

delete 斷點編號

刪除設定的某個斷點或觀測點

disable 斷點編號

使斷點失效

enable 斷點編號

使斷點恢復有效

info

print 變數或表示式

列印變數或表示式的值

print 變數=值

對變數進行賦值

//print 表示式@要列印的值的個數

列印以表示式值開始的n個數

whatis 變數名/表示式

檢視變數或表示式值的資料型別

set variable 變數=值

給變數賦值(set variable i = 200和print i = 200效果相同)

//ps:set命令還有一些其他的用法,比如可以針對遠端除錯進行設定,可以用來設定gdb一行的字元數等

//set args

設定除錯程式的執行引數

continue

讓程式繼續執行,直到下乙個斷點或執行完為止

kill

終止正在除錯的程式

next

單步執行程式(相當於vs2010裡的f10)

step

進入所呼叫的函式內部,檢視執**況(相當於vs2010裡的f11)

nexti

stepi

單步執行一條指令,進入所呼叫的函式內部,檢視執**況

quit

退出gdb

//ptype

顯示資料結構定義情況

//make

編譯程式

numtype

disp

endaddress

what

num:斷點的編號

type:指明型別,型別為breakpoints說明是中斷

disp:指示中斷點在生效一次後是否就失去作用,如果是則為dis,不是則為keep

end:表明當前中斷點是否有效,如果是為y,不是則為n

what:列出中斷發生在哪個函式的第幾行

如果除錯int main(int argc, char *argv);

......

printf("argc = %d\n", argc);

此類**主函式需要傳引數進去有兩種方法:

1.在執行時直接加上引數:

run aa bb cc dd ...

2.設定引數 再打斷點

set args=aa bb cc dd ...

b 14(行號) 

GDB常用命令大全 GDB 命令詳細解釋

gdb常用命令大全 gdb 命令詳細解釋 一 檢視gdb命令幫助 兩次按下tab鍵 然後console 控制台輸入 help 二 gdb是乙個強大的命令列除錯工具。大家知道命令列的強大就是在於,其可以形成執行序列,形成指令碼。如果你是在unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb...

GDB 命令詳細解釋

linux中包含有乙個很有用的除錯工具 gdb gnu debuger 它可以用來除錯c和c 程式,功能不亞於windows下的許多圖形介面的除錯工具。和所有常用的除錯工具一樣,gdb提供了以下功能 監視程式中變數的值 在程式中設定斷點 程式的單步執行 在使用gdb前,必須先載入可執行檔案,因為要進...

GDB 命令詳細解釋

linux中包含有乙個很有用的除錯工具 gdb gnu debuger 它可以用來除錯c和c 程式,功能不亞於windows下的許多圖形介面的除錯工具。和所有常用的除錯工具一樣,gdb提供了以下功能 監視程式中變數的值 在程式中設定斷點 程式的單步執行 在使用gdb前,必須先載入可執行檔案,因為要進...