一:列檔案清單
1. list
(gdb) list line1,line2
二:執行程式
要想執行準備除錯的程式,可使用run命令,在它後面可以跟隨發給該程式的任何引數,包括標準輸入和標準輸出說明符()和外殼萬用字元(*、?、[、])在內。
如果你使用不帶引數的run命令,gdb就再次使用你給予前一條run命令的引數,這是很有用的。
利用set args 命令就可以修改傳送給程式的引數,而使用show args 命令就可以檢視其預設引數的列表。
(gdb)set args –b –x
(gdb) show args
backtrace命令為堆疊提供向後跟蹤功能。
backtrace 命令產生一張列表,包含著從最近的過程開始的所以有效過程和呼叫這些過程的引數。
三:顯示資料
利用print 命令可以檢查各個變數的值。
(gdb) print p (p為變數名)
whatis 命令可以顯示某個變數的型別
(gdb) whatis p
type = int *
print 是gdb的乙個功能很強的命令,利用它可以顯示被除錯的語言中任何有效的表示式。表示式除了包含你程式中的變數外,還可以包含以下內容:
l 對程式中函式的呼叫
(gdb) print find_entry(1,0)
l 資料結構和其他複雜物件
(gdb) print *table_start
$8=
l 值的歷史成分
(gdb)print $1 ($1為歷史記錄變數,在以後可以直接引用 $1 的值)
l 人為陣列
人為陣列提供了一種去顯示儲存器塊(陣列節或動態分配的儲存區)內容的方法。早期的除錯程式沒有很好的方法將任意的指標換成乙個陣列。就像對待引數一樣,讓我們檢視記憶體中在變數h後面的10個整數,乙個動態陣列的語法如下所示:
base@length
因此,要想顯示在h後面的10個元素,可以使用h@10:
(gdb)print h@10
$13=(-1,345,23,-234,0,0,0,98,345,10)
四:斷點
GDB除錯精粹及使用例項
gdb除錯精粹及使用例項 一 列檔案清單 1 list gdb list line1,line2 二 執行程式 要想執行準備除錯的程式,可使用run命令,在它後面可以跟隨發給該程式的任何引數,包括標準輸入和標準輸出說明符 和外殼萬用字元 在內。如果你使用不帶引數的run命令,gdb就再次使用你給予前...
GDB除錯精粹及使用例項
一 列檔案清單 1 list gdb list line1,line2 二 執行程式 要想執行準備除錯的程式,可使用run命令,在它後面可以跟隨發給該程式的任何引數,包括標準輸入和標準輸出說明符 和 和外殼萬用字元 在內。如果你使用不帶引數的run命令,gdb就再次使用你給予前一條run命令的引數,...
GDB除錯方法精粹
除錯命令 說明info threads 檢視當前程序的執行緒。gdb會為每個執行緒分配乙個id,後面操作執行緒的時候會用到這個id.前面有 的是當前除錯的執行緒.thread 切換除錯的執行緒為指定id的執行緒。break file.c 100 thread all 在file.c檔案第100行處為...