mascot:射水魚
gdb官網:
gdb適用的程式語言:
ada / c / c++ / objective-c / pascal 等。
gdb的工作方式:本地除錯和遠端除錯。
目前release的最新版本為8.0,gdb可以執行在linux 和windows 作業系統上。
1.1 what is gdb?
(1)gdb【gnudebuger】是gnu 開源組織發布的乙個強大的unix 下的程式除錯工具。
(2)能夠跟蹤程式的執行【execute】,觀察程式執行時內部的狀態;當程式崩潰時【crashed】,檢視程式崩潰前的狀態。
1.2 gdb的功能 (plus other things in support of these)
(1)自定義程式的啟動方式(指定影響程式執行時的引數)
(2)設定斷點
(3)回溯檢查導致程式異常結束的原因 【core dump】
(4)動態改變程式執行流 【可以跳過一些**以此定位出問題的地方】
1.3 為什麼需要 gdb?
(1)軟體不是一次性開發完成的,在軟體開發的任何階段都有可能存在bug
(2)除錯是軟體開發中不可或缺的技術,除錯工具對於軟體開發很重要
gdb是動態分析工具,binutils工具集是靜態分析工具。
3.1 gdb的啟動
gdb的啟動方式有3種,這3種方式分別適用不同的場合下。
(1) gdb
這種方式是在gdb內操作可執行程式,可以在shell命令列輸入gdb或者進入gdb後輸入file
(2)gdb core
當程式執行發生異常時,會發生核心轉儲(core dump),產生core檔案。可以使用gdb對core檔案進行分析,定位問題所在的檔案**行。
(3)gdb attach pid
gdb可以動態的連線到乙個程序上,使用之前使用 ps -aux 檢視想要連線的程序的pid號。
3.2 gdb的退出
使用 quit / q / crtl +d 退出gdb。
【tips】 使用gdb前需要完成的工作
(1)在編譯c/c++原始碼時,需要新增 -g 選項,將除錯資訊新增到可執行檔案中,供gdb使用
(2)linux下預設是不產生core檔案的,要使用umilit -c unlimited命令進行設定,這樣才能產生供gdb使用的core檔案
斷點的分類
除錯工具 gdb
gcc o a.out a.c gdb q a.out break main info register i r objdump d a.out grep a20 main.轉換為機器 objdump m intel d a.out grep a20 main.gdb 設定 1 gdb q 2 se...
gdb除錯工具
檢視幫助一是man 命令,二是進入 www.gnu.org 找到gdb的幫助文件 更詳細 gcc wall g main.c o main,只有這樣才能產生除錯資訊,包括core的除錯資訊。一 常用命令 run r 執行,執行到斷點,重新用r,表示重新開始執行。list l 列出源 l 2,l ma...
gdb除錯工具
gdb是gnu的除錯工具,它可以跟蹤被除錯的程式,進行設定斷點 單步執行等操作。主要用於程式的排錯,方便找出程式錯誤所在處。如寫乙個程式測試char型別所能表示整數。建立乙個moshou.c檔案,寫入 include include int main printf d n strlen a retu...