1. 列檔案清單
列出3到6行**:
2. run執行程式;利用set args 命令就可以修改傳送給程式的引數,而使用show args 命令就可以檢視其預設引數的列表。
3. 設定啟動引數使用命令: set args -st=1
4. 利用print 命令可以檢查各個變數的值。
注:print 是gdb的乙個功能很強的命令,利用它可以顯示被除錯的語言中任何有效的表示式。
表示式除了包含你程式中的變數外,還可以包含以下內容:
a) 對程式中函式的呼叫
(gdb) print find_entry(1,0)
b) 資料結構和其他複雜物件
(gdb) print *table_start
$8=c) 值的歷史成分
(gdb)print $1 ($1為歷史記錄變數,在以後可以直接引用 $1 的值)
d) 人為陣列
人為陣列提供了一種去顯示儲存器塊(陣列節或動態分配的儲存區)內容的方法。早期的除錯程式沒有很好的方法將任意的指標換成乙個陣列。就像對待引數一樣,讓我們檢視記憶體中在變數h後面的10個整數,乙個動態陣列的語法如下所示:
base@length
因此,要想顯示在h後面的10個元素,可以使用h@10:
(gdb)print h@10
$13=(-1,345,23,-234,0,0,0,98,345,10)
4. 斷點設定
利用break命令(可以簡寫為b)在除錯的程式中設定斷點
該命令有如下四種形式:
a) break line-number 使程式恰好在執行給定行之前停止。
b) break function-name 使程式恰好在進入指定的函式之前停止。
c) break line-or-function if condition 如果condition(條件)是真,程式到達指定行或函式時停止。
d) break routine-name 在指定例程的入口處設定斷點
注:從斷點繼續執行,執行countinue 命令(可以簡寫為c)
5. 斷點管理
a) 顯示當前gdb的斷點資訊:
b) 刪除指定的某個斷點
c) 禁止使用某個斷點
d) 允許使用某個斷點
6. 變數的檢查和賦值
a) whatis:識別陣列或變數的型別
b) ptype:比whatis的功能更強,他可以提供乙個結構的定義
c) set variable:將值賦予變數
7. 單步執行
a) next
不進入的單步執行
b) step
進入的單步執行
注:如果已經進入了某函式,而想退出該函式返回到它的呼叫函式中,可使用命令finish。
8. 函式的呼叫
a) call name 呼叫和執行乙個函式
b) finish 結束執行當前函式,顯示其返回值(如果有的話)
9. quit退出gdb程式
gdb: the gnu project debugger
GDB簡單除錯使用方法
如何用gdb執行程式 gcc gdb test.c o gdb test g 編譯程式 gdb r 執行程式 gdb bt full 列印當前的函式呼叫棧的所有資訊 多檔案打斷點 例 對gdb test.c的第三行打斷點 b gdb test.c 3 對多個檔案中的某乙個檔案的函式打斷點 例 b g...
一文看懂gdb簡單除錯
gdb視覺化除錯 gdb tui q 可執行檔案的名字 gdb編譯程式 使用gcc編譯程式生成可執行檔案的命令中,加上 g引數 啟動gdb除錯程式 gdb 可執行程式 退出gdb除錯 在gdb中輸入quit q 命令列傳參 set args gdb檢視源 list l 1 listsize顯示設定 ...
簡單GDB除錯
生成可用gdb除錯的可執行程式 g 會保留原始檔中的函式名和變數名 啟動gdbgdb 可執行程式名 set args 給程式傳參檢視程式中的源 當前檔案 l list l 行號 l 函式名 非當前檔案 l 檔名 行號 l 檔名 函式名 檢視當前可顯示的行數 show listsize 預設是顯示10...