GDB除錯工具

2021-08-04 22:56:30 字數 1751 閱讀 1236

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...