Linux下C C 除錯工具GDB

2022-03-18 23:35:29 字數 1392 閱讀 6576

例項除錯程式 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,執...