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 設定斷點的觸發條件 ...