gdb學習與使用

2021-10-11 01:35:55 字數 2228 閱讀 1303

gdb基礎知識

1、gdb是the gnu project debugger 的縮寫,是linux下功能全面的除錯工具,gdn支援斷點、單步執行、列印變數、觀察變數、檢視暫存器、檢視堆疊等除錯手段,在linux環境軟體開發中,gdn是主要的程式除錯工具,主要用來除錯c和c++程式。

2、gdb的常用命令:

1| (gdb)file file_name   // 載入被除錯的可執行程式檔案

2| (gdb)attach pid // 關聯制定程序進行除錯

3| (gdb)list/l // 列出當前位置之後的10行**

4| (gdb)run/r // 執行被除錯的程式,如果沒有斷點,則執行整個程式,反之,第乙個斷點處停止

5| (gdb)continue/c // 繼續執行被除錯程式,直至程式結束或者下乙個斷點

6| (gdb)break/b 行號|函式名|**位址 // 設定斷點

7| (gdb)backtrace/bt // 列出呼叫棧

8| (gdb)step/s // 執行一行源**(單步跟蹤),有函式則進入

9| (gdb)next/n // 執行一行源**(單步跟蹤), 有函式直接執行,不進入函式

10| (gdb)print/p // 顯示指定變數(臨時變數和全域性變數)

11|(gdb)quit/q // 退出gdb

12|(gdb)info // 列印詳細資訊

13|(gdb)x // 列印記憶體資訊

14|(gdb)delete/d // 刪除斷點

15|(gdb)kill // 終止正在除錯的程式

3、例如test.c程式除錯:

#include #include int sum(int arg1, int arg2) 

int main(int argc, char *ar**)

printf("value:%d and total : %d\n", value, total);

return 0;

}

1)執行  gcc -g test.c -o test    生成可執行程式

2)引導程式 gdb test

$ gdb test

gnu gdb (gdb) red hat enterprise linux (7.2-56.el6)

license gplv3+: gnu gpl version 3 or later this is free software: you are free to change and redistribute it.

there is no warranty, to the extent permitted by law. type "show copying"

and "show warranty" for details.

this gdb was configured as "x86_64-redhat-linux-gnu".

for bug reporting instructions, please see:

...reading symbols from /home/work/tmp/test.c...done.

(gdb)

3)開始使用gdb基礎命令

(gdb) b 14       // 在14行打乙個斷點

breakpoint 2 at 0x4004ff: file test.c, line 14.

(gdb) r // 開始執行載入的程式

breakpoint 1, main (argc=1, ar**=0x7fffffffdf28) at test.c:14

14 for(i = 0; i < 10; i++)

19 printf("value:%d and total : %d\n", value, total);

20 return 0;

21 }

(gdb) continue // 繼續執行函式

continuing.

value:10 and total : 90

學習參考:

GDB使用學習

gcc g o test test.c g 引數使得在gdb中可以使用list命令檢視源 list 檢視原 start 單步執行,執行程式,停在第一執行語句 step 單步執行 print 變數名 顯示該變數的值 回車 重複上一條命令 一般跟在step命令之後進行單步除錯 next 單步除錯 當前l...

GDB簡介與使用

一,gdb的簡介 gdb是gnu debugger的縮寫。與make一樣,同樣來自於gnu專案。早期,gdb只執行在linux或unix平台。目前有人將gdb移植到了windows平台。這樣在windows作業系統下,軟體開發人員同樣可以使用出色的gdb除錯工具。軟體開發人員可以通過gdb除錯工具啟...

GDB學習使用筆記

首先說明我使用的gdb版本及作業系統版本資訊如下 gdb是gnu 的原始碼偵錯程式。fred fish,原真主保佑他,關於他的生平可以在了解一下。這裡有gdb最新版的文件,可以參考!gdb簡介 偵錯程式 比如象gdb 能讓你觀察另乙個程式在執行時的內部活動,或程式出錯時發生了什麼。gdb主要能為你做...