gdb除錯小結

2021-09-06 17:44:20 字數 1500 閱讀 3890

gdb

最基本的除錯命令.

1以除錯程式test.cpp

為例:

進入除錯環境 gdb test

2.b 12

在檔案的第12

行設定斷點。

刪除斷點:

info b 列出所有的斷點資訊

(gdb) info b

num type           disp enb address    what

1   breakpoint     keep y   0x004010f1 in main at test.cpp:17

breakpoint already hit 1 time

2   breakpoint     keep y   0x00401120 in main at test.cpp:23

breakpoint already hit 1 time

要刪除第2個斷點

d 2如果不指定斷點號,則表示刪除所有的斷點

3.r –d

執行當前被除錯的程式

.-d是執行引數

4.p variable

列印資料內容

5.l列出產生執行檔案的源**的一部分.

6.n執行一行源**但不進入函式內部。

7.s執行一行源**而且進入函式內部。

8.c繼續執行程式,直至下一中斷或者程式結束。

9.k終止正在除錯的程式.

10.q

終止gdb.

附註:基本

gdb命令:

命令 簡寫

功能file

裝入想要除錯的可執行檔案.

kill k

終止正在除錯的程式.

list  l

列出產生執行檔案的源**的一部分.

next n

執行一行源**但不進入函式內部.

step s

執行一行源**而且進入函式內部.

continue c

繼續執行程式,直至下一中斷或者程式結束。

run r

執行當前被除錯的程式.

quit q

終止gdb.

watch

使你能監視乙個變數的值而不管它何時被改變.

catch

設定捕捉點.

thread t

檢視當前執行程式的執行緒資訊.

break b

在**裡設定斷點

, 這將使程式執行到這裡時被掛起.

make

使你能不退出

gdb

就可以重新產生可執行檔案.

shell

使你能不離開

gdb

就執行unix shell 命令.

print p

列印資料內容。

examine x

列印記憶體內容。

backtrace bt

檢視函式呼叫棧的所有資訊。

gdb除錯小結

二 資訊顯示 三 斷點 四 其他參考 當以gdb方式啟動gdb後,gdb會在path路徑和當前目錄中搜尋的原始檔。如要確認gdb是否讀到原始檔,可使用l或list命令,看看gdb是否能列出源 使用 gdb r或run命令執行程式。gdb p pid是程序id,可以通過 ps aux grep 程式名...

gdb 除錯 vs除錯

一 先要生成二進位制檔案 g g 1.cpp o 1.out g引數不要省,不然 gdb l 引數用不了 二 引數 設定斷點 設定 函式斷點break func 在某行設定斷點break 7 檢視斷點資訊 info break 刪除斷點 d 刪除所有斷點 d 3 刪除第三個 執行 r 下一步 n 逐...

GDB除錯命令以及GDB除錯段錯誤

一 gdb的除錯命令。c語言是 cc g tst.c o tst c 是g g o 生成的檔案 file.cpp c 除錯程式命令 gdb file 啟動,羅列 行數ist 1,break 行數 info break,run r 除錯執行,step s 單步除錯,檢視變數 print p 變數名,檢...