gdb是gnu發布的一款功能強大的程式除錯工具。gdb主要完成下面三個方面的功能:
1、啟動被除錯程式。
2、讓被除錯的程式在指定的位置停住。
3、當程式被停住時,可以檢查程式狀態(如變數值)。
1.編譯生成可執行檔案:gcc -g tst.c -o tst
2.啟動gdb:gdb tst
3.在 main函式處設定斷點:break main
4.執行程式:run
5.利用更加豐富的gdb命令對程式進行除錯。
1、list(l) 檢視程式
2、break(b) 函式名 在某函式入口處新增斷點
3、break(b) 行號 在指定行新增斷點
4、break(b) 檔名:行號 在指定檔案的指定行新增斷點
5、info break 檢視所有設定的斷點
6、delete 斷點編號 刪除斷點
7、next(n) 單步執行程式(不進入子函式)
8、step(s) 單步執行程式(進入子函式)
9、continue(c) 繼續執行程式
10、print(p) 變數名 檢視指定變數值
11、set var=value 設定變數的值
12、quit(q) 退出gdb
core dump又叫核心轉存。當程式在執行過程中發生異常, 這時linux系統可以把程式出錯時的記憶體內容儲存在乙個core檔案中, 這種過程叫core dump。core dump主要用來對付什麼樣的錯誤呢?segment fault。
在linux系統中,預設是關閉core dump功能的,但是可以通過來ulimit命令開啟/關閉core dump功能。
開啟:ulimit -c unlimited
關閉:ulimit -c 0
發生core dump之後, 可以使用gdb進行檢視core檔案的內容, 以定位程式出錯的位置.
用法:gdb 程式名 core檔名
例: gdb ./test core.12525
3 gdb除錯相關
1.debug模式編譯 gcc g countgdb.c o countgdb 退出gdb模式後,所有斷點需重新設定 2.gdb countgdb 後設定斷點 設定斷點 b 10 或者 b 函式名 或者 b 15行 if x 1 對應第10行設定乙個斷點,或者對函式名設定斷點,或者對應在15行設定條...
linux 基本篇 學習筆記(3) gdb除錯
進行gdb除錯是在linux下進行程式開發的常用操作。如 檢視 list 當前檔案 l 非當前檔案 l 行號 斷點操作 break b 設定斷點 b 行號 b 函式名 b 檔名 行號 b檔名 函式名 檢視斷點 info i b 刪除斷點 d num 斷點的編號 刪除多個 d num1 num2 d ...
linux學習之C語言(3) gdb
除錯程式要用到gdb這個除錯工具,gdb是gnu開源組織發布的乙個強大的unix下的程式除錯工具。一般來說,gdb主要幫助你完成下面四個方面的功能 1 啟動你的程式,可以按照你的自定義的要求隨心所欲的執行程式。2 可讓被除錯的程式在你所指定的調置的斷點處停住。斷點可以是條件表示式 3 當程式被停住時...