編譯時要加上-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 /
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 ...