3 GDB程式除錯及Coredum

2021-07-29 22:56:29 字數 1356 閱讀 4188

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 當程式被停住時...