斷點:
breakpointer:break linenum;
info break【n】:檢視斷點資訊;n表示斷點號。
break func:在某個函式的入口處打斷點;
bread +- offset:在當前行號的前面或後面的offset行處停住;
設定監視:watch var:var為某一變數;
rwatch var:當var被讀時,停住程式。
awatch var:當var被讀或被寫時,停住程式。
info watchpoints:列出當前所有的監視點。
只有如上的兩種停止點支援if。
condition bnum expression :修改斷點號為bnum的停止條件為expression ;
設定捕捉點:catch event:捕獲異常;
刪除停止點:clear:清除所有已定義的停止點。
clear function:清除在函式上的所有停止點。
clear linenum:清除指定行號上的停止點。
delete [breakpoints] [range...]:刪除指定的斷點,不指定引數,刪除所有的斷點;breakpoints:斷點號,range:斷點號範圍。
disable:用法同上,但是gdb不會刪除,在此想用時,可用enable恢復。
執行:list:從第一行開始列出原始碼,簡寫l;
next:單步執行語句,單步步過,簡寫n;
step:單步步入,簡寫s;
si或ni:執行程式直到退出迴圈體;
run:執行程式,簡寫r;
continue:繼續執行程式,簡寫c;
print:檢視某個變數的值,簡寫p;
bt、backtrace:檢視函式堆疊;
源**搜尋:search regexp :向前面搜尋;reverse-search:全部搜尋;
regexp:是乙個正規表示式,也是乙個 字串的匹配模式。
disassemble func:檢視函式的反彙編。
p *array@len:顯示這個動態陣列的取值。
p/x var:16進製制顯示。
自動顯示:可以設定一些自動顯示的變數,當程式停住是這些變數會自動顯示。
display expr
display/fmt expr/addr
expr是乙個表示式,fmt表示顯示的格式,addr表示記憶體位址。
delete display [num]:刪除某個自動顯示。
檢視記憶體:examine簡寫為x,來檢視記憶體中的值。
x/(n/f/u) addr:n/f/u為三個可選引數。
n是乙個正整數,表示記憶體的長度,也就是說當前位址向後顯示幾個位址的內容。
f表示顯示的格式。
u表示從當前位址向後請求的位元組數,如果不指定的話,gdb預設的是4位元組。
三個引數可以一起使用。
finish:退出函式。
檢視暫存器的值:
info registers regname :檢視指定暫存器的值。
info all-registers 檢視所有暫存器的值。
quit:退出gdb; gdb基本使用方法簡介
gdb基本使用方法 前言程式 中的錯誤可分為數類,除了最容易除錯的語法錯誤,編譯程式會告訴你錯誤所在外,大部分的錯誤都可以歸類為執行時錯誤。gdb 的功能便是尋找執行時錯誤。如果沒有除錯程式,我們只能在程式中加入輸出變數值的指令來了解程式執行的狀態。有了 gdb 除錯程式,我們可以設定在任何地方停止...
gdb的基本使用方法
我們除錯程式,經常用到gdb來進行除錯程式。今天有空講一下他的基本用法。也讓自己作個記錄sort.c include include include define data array length 12 基本常用命令 gdb 常用命令 1 gdb 可執行檔案 表示對某個檔案進行除錯 2 b 函式名...
GDB 基本用法
在原來的的選項上再加上 g 選項,如 gcc g wall o2 o test test.c 或者 gcc g o test test.c。有一點需要注意的是除錯時最好去掉優化選項,比如內聯 inline 函式 優化 去掉函式呼叫,而將函式 在呼叫的位置展開 該函式名上就無法設定斷點。這是因為內聯函...