執行:
(gdb) r
命令列帶參:
(gdb) r "引數1" "引數2"
(gdb) set args "引數1" "引數2" //set args 10 20 40
檢視/設定 執行環境:
(gdb) show args //檢視命令列引數
(gdb) show paths //檢視執行路徑
(gdb) show env //檢視環境變數
(gdb) set evn lines=25 //設定環境變數
設定斷點 break:
(gdb) b function
(gdb) b linenum
(gdb) b + offset
(gdb) b - offset
(gdb) b filename:function
(gdb) b filename:linenum
(gdb) b *address
(gdb) b *** if //b 18 if i==50
設定觀察點:
(gdb) watch expr //表示式expr變化則停止
(gdb) rwatch expr //表示式expr被讀時停止
(gdb) awatch expr //表示式expr被讀寫時停止
檢視斷點/觀察點 info:
(gdb) i
(gdb) i locals //顯示當前函式所有區域性變數的值
(gdb) i b 3 //檢視第三個斷點
(gdb) i watchpoints
(gdb) i watchpoints n
設定自動顯示:
(gdb) display i
(gdb) display $pc //顯示當前記憶體位址
刪除自動顯示:
(gdb) delete display dnum
(gdb) disable display dnum
(gdb) enable display dnum
停止維護點:
(gdb) delete
(gdb) clear
(gdb) disable
(gdb) enable
例子:clear //清楚所有停止點
clear function //清除該函式內部的所有停止點
clear filename:function
clear linenum //清除某行上的停止點
delete n
delete n1-n2
disable n
enable n
單步除錯next/step:
(gdb) n //逐行執行語句,不進入函式體內部
(gdb) s //逐行執行語句,進入函式內部
檢視源程式list:
(gdb) list first,last
(gdb) list linenum
檢視執行資料print:
print /n //顯示變數n的值
print /::n //顯示全域性變數n的值
print /array //顯示資料的值
print /*array@length //顯示動態分配陣列的值
/:為顯示格式,其值為:x/d/u/o/t/a/c/f
檢視變數型別:
(gdb) whatis var //獲取變數的型別
(gdb) ptype var/structname //獲取結構體定義
(gdb) where //函式的呼叫關係鏈
檢視記憶體:
(gdb) x addr //檢視記憶體
(info) line n //顯示第n行的記憶體位址
改變程式執行流程:
(gdb) print i=10 //賦值
(gdb) print function //執行一次函式
(gdb) set var i=15
(gdb) jump linenum
(gdb) jump address
(gdb) call function //強制呼叫函式
gdb常用命令
gnu的偵錯程式稱為gdb,是乙個互動式的程式,工作在字元模式。其常用命令如下 break num 在指定的行上設定斷點 break 1 bt 顯示函式的呼叫順序 clear 刪除斷點 clear test.c 10 display expr 每次程式停止後顯示表示式的值 printf expr顯示...
GDB常用命令
1 執行 run2 單步執行 step next finish 一直執行到函式返回 until 執行到某一行 3 斷點 break args break 12 break 10 hbreak args 硬體輔助斷點 thbreak args rbreak args info breakpoints ...
gdb 常用命令
呼叫gdb編譯需要在cc後面加 g引數再加 o root redhat home gdb 除錯檔案 啟動gdb gdb l 字母l 從第一行開始列出原始碼 gdb break n 在第n行處設定斷點 gdb break func 在函式func 的入口處設定斷點 gdb info break 檢視斷...