linux GDB偵錯程式的使用

2021-07-02 14:40:40 字數 1299 閱讀 3014

gdb 偵錯程式

除錯是所有程式設計師都會面臨的問題。如何提高程式設計師的除錯效率,更好更快地定位

程式中的問題從而加快程式開發的進度,是大家共同要面對問題。就如讀者熟知的

windows 下的一些除錯工具,如 vc 自帶的如設定斷點、單步跟蹤等,都受到了廣大使用者

的讚賞。那麼,在 linux 下有什麼很好的除錯工具呢?

本文所介紹的 gdb 偵錯程式是一款 gnu 開發組織並發布的 unix/linux 下的程式除錯

工具。雖然,它沒有圖形化的友好介面,但是它強大的功能也足以與微軟的 vc 工具等

媲美。下面就請跟隨筆者一步步學習 gdb 偵錯程式。

在linux下除錯程式一般用gdb來執行。

這裡簡要介紹一下是否gdb除錯程式的方法:

(1)進入gdb除錯:

gdb ***          -》 就進入除錯模式。

例如:gdb middlepublisher

(2)r + 執行時的引數         -》 開始執行可執行程式。

例如 r -lxml2 -f refile

(3)b + 斷點               -》設定除錯的斷點。

兩種:一種是:b cmstask.cpp:200      表示在cmstask.cpp檔案的第200行設定斷點。

另一種:b taskmanager::buildpubwintask 表示在執行buildpubwintask這個函式的時候停止。

(4)取消斷點:

dis 1          表示取消第乙個斷點

dis 2          表示取消第二個斷點

(5)檢視設定斷點資訊:

info   b

(6)在斷點停止處檢視所在**的詳細資訊:

l(7)可以在gdb中直接編譯,然後再重新執行時,gdb會直接執行新編譯好的可執行程式。

例如:直接在gdb下執行make後再重啟執行。

(8)跟進乙個函式:s

如果設定的斷點是在乙個函式入口。到達該斷點時,鍵入s就可以進入該函式內部進行除錯。如果有多個函式就多次鍵入s來進入內部的函式。

(9)單步執行:n

例如:直接在gdb下鍵入n,進行單步執行  不進入函式

(10)繼續執行:c

例如:直接在gdb鍵入c,可以在斷點停止後繼續執行。

如果斷點是乙個迴圈,則可以繼續執行乙個迴圈,再停止斷點上面

(11)退出 gdb除錯

(12)如果資料夾裡面有makefile  則可以在gdb除錯介面直接執行make  make clean

(13)finish 知道當前函式完成執行返回

Linux gdb偵錯程式

gdb的啟動 gdb 程式名 corefile corefile是可選的,但能增強gdb的除錯能力 強調 啟動gdb必須在編譯命裡加上 g 引數,g 一般寫在遍歷命令的靠前位置,例如 gcc wall g o hello.o c hello.c q 命令 命令格式 gdb q 執行程式 不顯示gdb...

Linux gdb偵錯程式

除錯 觀察程式的執行錯誤,通常目的是為了排查程式的執行錯誤 編譯錯誤 鏈結錯誤 執行時錯誤 執行時邏輯不對以及執行時程式崩潰 程式必須是乙個debug版本的程式 gcc g 預設生成releas版本的程式,若要生成debug版本,則使用 g選項,例如 gcc g test.c o test.exe ...

gdb 偵錯程式的使用

gdb 偵錯程式的使用 在用gcc編譯程式時,加上 g 引數,然後執行 gdb 可執行程式名 就進入gdb除錯模式 常用指令 1.l list 列出程式清單 2.r run 執行程式 3.b breakpoint 設定斷點,格式 b 行號 函式名 4.b num if i 20 設定斷點的觸發條件 ...