第03課 GDB常用的除錯命令概覽

2022-04-19 06:46:58 字數 1598 閱讀 2230

先給出乙個常用命令的列表,後面結合具體的例子詳細介紹每個命令的用法。

命令名稱      命令縮寫      命令說明

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 檢視斷...