gdb偵錯程式

2022-05-01 03:00:08 字數 1502 閱讀 3556

編譯時要加上-g引數

利用gdb對乙個可執行檔案進行除錯的命令為:

gdb filename

這告訴gdb裝入filename的可執行檔案進行除錯。

gdb常用命令

quit - 退出gdb,簡寫「q」

run - 執行當前被除錯程式,簡寫「r」

kill - 終止正在除錯的程式

step - 執行一行源**而且進入函式內部,簡寫「s」

next - 執行一行源**不進入函式內部,簡寫「n」

break - 設定斷點

backtrace - 回溯跟蹤,簡寫「bt」

frame n - 定位到發生錯誤的**段,n為backtrace 命令輸出結果中的行號

print - 列印表示式或變數的值,或列印記憶體中某個變數開始的一段連續區域的值,還可以用來對變數進行賦值

display - 設定自動顯示的表示式或變數,當程式停住或在單步跟蹤時,這些變數會自動顯示其當前值

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

jump - 使程式跳轉執行

使用方法

1.使用斷點

dgb下的常用命令(break, list ,jump等)後面都可以跟不同的引數,使命令變得更加靈活。這些引數為:

2.檢視執行時資料

2.1 print命令(簡寫p)

print的格式

print

print /

是表示式,是輸出格式,如按十六進製制輸出,則是/x。

2.2 輸出格式

2.3 自動顯示命令display

格式

display

display /

display /

是表示式,是輸出格式,表示記憶體位址

設定好表示式(可以是變數)後,以後每一步都會顯示設定好的表示式。

2.4 檢視記憶體

使用examine命令(簡寫x),語法如下

x/

引數說明如下:

3檢視源**

使用list

檢視彙編**,使用disassemble +「行號」,「函式名」,「檔名:行號」,「檔名:函式名」。

4.改變程式的執行

4.1修改變數值

使用print修改,如 print x = 9

4.2跳轉執行

使用jump 和 jump

4.3強制函式返回

使用return 或 return

4.4強制呼叫函式

call 或 print

GDB偵錯程式

偵錯程式gdb 一 啟動和退出gdb gdb除錯的物件是可執行檔案,而不是程式的源 如果要使乙個可執行檔案可以被gdb除錯,那麼在使用編譯器gcc編譯程式時需要加入 g選項。gdb除錯乙個程式的命令格式是 gdb 程式檔名 也可以在linux提示符下,直接輸入gdb,然後使用file命令裝入要除錯的...

gdb偵錯程式

在使用gdb偵錯程式之前,必須在編譯程式時加上 g選項 功能 顯示上次內容之前或之後的10行內容,首次使用顯示main 函式之前或之後的10行內容 命令 list 簡稱 l 功能 顯示引數行之前和之後的10行內容.命令 list line number 簡稱 l 10 功能 顯示原始檔從一行到另一行...

gdb偵錯程式

gdb是gnu發布的一款強大的除錯功能 gdb主要完成下面三個方面的功能 1 啟動被除錯程式 2 讓被除錯的程式在指定的位置停住 3 當程式停住時,可以檢視程式的狀態 變數值 gcc g test.c o test 生成除錯資訊 gdb test 啟動gdb gdb除錯工具相關命令 gdb run ...