例項除錯程式 main.c :
#include
int add_range(int low, int high)
int main(void)
以上函式add_range功能為從low加到high,基本除錯步驟:
1.編譯
$ gcc -g main.c -o main
2.除錯
$ gdb main
3.幫助
(gdb) help
4.從第幾行列出**
(gdb) list 10
(gdb) l 10
5.直接回車重複上一條命令
6.開始除錯,gdb會停在main()函式變數定義後第一條語句
(gdb) start
7.執行下一條(不進入函式),執行到printf語句時會直接輸出到終端
(gdb) next
(gdb) n
8.步進,進入函式
(gdb) step
(gdb) s
9.檢視棧幀
(gdb) backtrace
(gdb) bt
10.選擇棧幀
(gdb)frame 幀編號
(gdb)f 幀編號
11..顯示當前棧幀區域性變數
(gdb)info locals
(gdb)i locals
12.列印變數
(gdb)print 變數
13.給變數賦值
(gdb)set var 變數=值
14.執行結束
(gdb) finish
15.退出
(gdb) quit
斷點除錯:
1.每次執行都顯示變數
(gdb) display 引數
2.取消display
(gdb) undisplay 引數
3.設定斷電
(gdb)break 行數
(gdb)b 行數
(gdb)b 檔名:行數 #在多檔案情況下
4.執行至斷點
(gdb)continue
(gdb)c
5.顯示所有斷點
(gdb) info breakpoints
(gdb) i breakpoints
6.刪除某個斷點
(gdb) delete breakpoints 斷點號
7.條件斷點
(gdb) break 斷點行數 if 變數 != 0
8.重新開始執行到斷點
(gdb) run
(gdb) r
9.禁用斷點
(gdb)disable breakpoints 斷點號
10.啟用斷點
(gdb)enable 斷點號
未完待續。。。
Linux下GDB除錯工具
1.常用的除錯 的方法 不管你使用哪種方法除錯 都需要有足夠的耐性 方法一 在 中加入列印語句 在關鍵語句的前後 函式呼叫 關鍵變數 方法二 使用gdb除錯 原理也是讓程式分步執行,列印關鍵變數的值 1 使用gdb在編譯程式的時候必須加上 g選項 將程式的除錯資訊新增到生成的可執行程式中 gcc m...
linux除錯工具GDB
gdb偵錯程式除錯的物件是可執行檔案,使用gcc或者g 編譯器編譯源 時,必須加上 g才能使目標可執行檔案包含可被除錯的資訊。比如 gcc g o helloworld helloworld.c 編譯並連線程式,使之包含可被除錯資訊 gdb helloworld 使用gdb偵錯程式開啟hellowo...
linux下的程式除錯工具gdb
這裡只列舉最最常用的gdb命令。gdb program 準備除錯程式。也可以直接進入gdb,再通過file命令載入。run args 開始執行程式,run後面可以加程式需要的引數,就像在命令列正常執行時那樣。s n si c kill s即step in,進入下一行 執行 n即step next,執...