標籤:io strong 檔案 for ar 代碼 on sp
n 基本架構:
a) Gdb功能
b) 運行程式
c) 查看源碼
d) 設定斷點(break)與觀察點(watch)
e) 單步調試
f) Gdb常用命令總結
5.1 gdb功能
1)啟動程式:
Run(r),另外啟動程式的時候還可以帶上參數(argv[1],argv[2]……)
2) 設定斷點:
設定斷點:break(b) +行號/函數名
另外設定斷點的時候還可以用條件運算式(if)
刪除斷點:delete(d) + 斷點號
查看斷點:info break(i b)
3) 查看變數資訊:
Print 查看變數值
Ptype 查看變數類型
4) 動態改變程式的執行環境:
Print 變數=value 動態改變程式運行時變數的值
5.2 運行程式
1) run(r) 運行程式
2) run + arg1 arg2…… (參數列表)
5.3 查看源碼
1) list(l) 查看最近10行源碼
l 2,10 查看第2行到第10行的源碼
l ,15 查看最多到第15行的源碼
2) list +fun(函數名) 查看fun函數源碼
3) list +file:fun 查看file檔案中的fun函數源碼
4) list +file:15 查看file檔案中的第15行左右的源碼
5.4 設定斷點(break)與觀察點(watch)
1) break 行號
2) break 函數名
3) break file:行號
4) break file:函數名
5) break if <condition> 條件成立時程式停住
6) info break(i b) 查看斷點
7) watch expr 一旦expr值發生改變,程式就停住
8) delete +斷點編號 刪除斷點
5.5 單步調試
1) continue(c) 運行至下一個斷點
2) step(s) 單步跟蹤,進入函數,類似於VC中的step in
3) next(n) 單步跟蹤,不進入函數,類似於VC中的step out
4) finish 運行程式,直到當前函數返回,並輸出函數的傳回值。
5) until 退出迴圈體(for)
5.6 gdb常用命令總結
Run(r) 運行程式
List(l) 列出原始碼
Break(b) 設定斷點
Info break(i b) 查看斷點資訊
Continue(c) 繼續運行程式,直到下一個斷點
Watch 設定觀察點,一旦觀察值發生改變,程式就停住
Step(s) 單步跟蹤,進入函數,類似於VC中的step in
Next(n) 單步跟蹤,不進入函數,類似於VC中的step out
Finish 退出函數,並輸出函數的傳回值。
Until(u) 退出迴圈體
Print(p) 查看變數值
l 一些細節知識:
1.在gdb調試過程中按Enter鍵代表重複執行上條命令;
2.幾個退出命令的比較:
Until 退出迴圈(for)
Finish 退出函數
q 退出gdb