gdb除錯命令

2021-09-29 22:43:19 字數 2312 閱讀 8141

目錄

gdb除錯常用命令

完整示例

1. 啟動除錯

2. 顯示當前的**:l

3. 在某一行打斷點:b 行號

4. 開始執行程式:r( run )

5. 逐步執行:s( step ) ,類似於vs中的f11

6. 重複上條命令:不輸入任何命令,直接enter

7. 檢視某個變數的變化:print 變數名

8. 檢視變數的型別:whatis 變數名

9. 看函式的堆疊:bt

10. 結束除錯:finish

11. 進入下一次除錯:n( next )

12. 退出除錯:q

編譯程式時需要加上-g,之後才能用gdb進行除錯:gcc -g main.c -o main

gdb中命令:

(gdb)help:檢視命令幫助,具體命令查詢在gdb中輸入help + 命令,簡寫h

(gdb)start:單步執行,執行程式,停在第一執行語句

(gdb)list:檢視原**(list-n,從第n行開始檢視**。list+ 函式名:檢視具體函式),簡寫l

(gdb)set:設定變數的值

(gdb)next:單步除錯(逐過程,函式直接執行),簡寫n

(gdb)step:單步除錯(逐語句:跳入自定義函式內部執行),簡寫s

(gdb)backtrace:檢視函式的呼叫的棧幀和層級關係,簡寫bt

(gdb)frame:切換函式的棧幀,簡寫f

(gdb)info:檢視函式內部區域性變數的數值,簡寫i

(gdb)finish:結束當前函式,返回到函式呼叫點

(gdb)continue:繼續執行,簡寫c

(gdb)quit:退出gdb,簡寫q

(gdb)break+num:在第num行設定斷點,簡寫b

(gdb)info breakpoints:檢視當前設定的所有斷點

(gdb)delete breakpoints num:刪除第num個斷點,簡寫d

(gdb)display:追蹤檢視具體變數值

(gdb)undisplay:取消追蹤觀察變數

(gdb)watch:被設定觀察點的變數發生修改時,列印顯示

(gdb)i watch:顯示觀察點

(gdb)enable breakpoints:啟用斷點

(gdb)disable breakpoints:禁用斷點

(gdb)x:檢視記憶體x/20xw 顯示20個單元,16進製制,4位元組每單元

(gdb)run ar**[1] ar**[2]:除錯時命令列傳參

(gdb)set follow-fork-mode child#makefile專案管理:選擇跟蹤父子程序(fork())

core檔案:先用$ ulimit -c 1024 開啟core,當程式出錯會自動生成core檔案。除錯時 gdb a.out core

gcc -g test.c   // 編譯檔案,生成可執行程式,並且給檔案加上除錯資訊

gdb a.out // 開始啟動除錯

另外:

l 函式名  // 顯示這個函式的**(10行)

gdb除錯命令

一 gdb常用命令簡介 rrun 執行.程式還沒有執行前使用 c cuntinue 執行到下一斷點處 qquit 退出tab tab命令補全功能 h help幫助s step 跟入函式 nnext 執行下一行的 如果是函式呼叫,也當作一行 執行到此函式返回 b breakpoint 設定斷點,用法 ...

GDB除錯命令

gdb的命令很多,本文不會全部介紹,僅會介紹一些最常用的。在介紹之前,先介紹gdb中的乙個非常有用的功能 補齊功能。它就如同linux下 shell中的命令補齊一樣。當你輸入乙個命令的前幾個字元,然後輸入tab鍵,如果沒有其它命令的前幾個字元與此相同,shell將補齊此命令。如果有 其它命令的前幾個...

GDB除錯命令

用gdb除錯程式 gdb概述 gdb是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb的圖形化偵錯程式更強大的功能。所謂 寸有所長,尺有所短 就是這...