先給出乙個常用命令的列表,後面結合具體的例子詳細介紹每個命令的用法。
命令名稱 命令縮寫 命令說明
run r 執行乙個程式
continue c 讓暫停的程式繼續執行
next n 執行到下一行
step s 如果有呼叫函式,進入呼叫函式內部,相當於step into
until u 執行到指定行停下來
finish fi 結束當前呼叫函式,到上一層函式呼叫處
return return 結束當前呼叫函式並返回指定值,到上一層函式呼叫處
print p 列印變數或暫存器值
backtrace bt 檢視當前執行緒的呼叫堆疊
frame f 切換到當前呼叫執行緒的制定堆疊,具體堆疊通過堆疊序號指定
thread thread 切換到指定執行緒
break b 新增斷點
tbreak tb 新增臨時斷點
delete del 刪除斷點
enable enable 啟動某個斷點
disable disable 禁用某個斷點
watch watch 監聽某乙個變數或記憶體位址的值是否發生變化
list l 顯示原始碼
info info 檢視斷點/執行緒等資訊
ptype ptype 檢視變數型別
disassemble dis 檢視彙編**
set args 設定程式啟動命令列引數
show args 檢視設定的命令列引數
上面只列了一些常見的命令,對於一些不常見的命令(如file命令)就不列舉了,不建議可以記憶這些命令,因為確實有點多,找幾個程式**實際聯絡一下很快就能記住,至於要不要採用,大家還是根據自己的學習習慣來。當gdb輸入命令時,對於乙個命令可以縮寫成什麼樣子,只需要遵循如下兩個規則即可。
---乙個命令縮寫時不能出現多個選擇,否則gdb就不知道對應哪個命令了。舉個例子,輸入th,那麼th對應的命令有thread和thbreak,這樣gdb就不知道哪個了,需要更具體的輸入,gdb才能識別。
---gdb有些命令雖然也對應多個選擇,但是有些命令的簡寫是有規定的,例如,r就是命令『run』的簡寫,雖然輸入『r'時,你的本意可能是』return『命令。
總之,如果記不清楚,可以直接使用命令全稱,每個命令都是很常見的英文單詞,通俗易懂不難記憶。
GDB常用除錯命令
呼叫gdb編譯需要在cc後面加 g引數再加 o root redhat home gdb 除錯檔案 啟動gdb gdb l 字母l 從第一行開始列出原始碼 gdb break n 在第n行處設定斷點 gdb break func 在函式func 的入口處設定斷點 gdb info break 檢視斷...
gdb常用除錯命令
將.c檔案程式設計成包含標準除錯資訊的檔案 命令 gcc g c o 1 啟動gdb除錯程式 兩種方式 a gdb filename b 啟動gdb後,使用file filename 2 list l 檢視程式 方便設定斷點 3 break b 函式名 在某函式入口處新增斷點 4 break 行號 ...
GDB 常用除錯命令
呼叫gdb編譯需要在cc後面加 g引數再加 o root redhat home gdb 除錯檔案 啟動gdb gdb l 字母l 從第一行開始列出原始碼 gdb break n 在第n行處設定斷點 gdb break func 在函式func 的入口處設定斷點 gdb info break 檢視斷...