gdb的基本使用方法

2021-10-05 14:51:52 字數 2077 閱讀 1498

我們除錯程式,經常用到gdb來進行除錯程式。今天有空講一下他的基本用法。也讓自己作個記錄
sort.c
#include #include #include #define data_array_length     12

基本常用命令

gdb 常用命令

(1) gdb 可執行檔案 : 表示對某個檔案進行除錯

(2) b 函式名/行數 : 在某個函式名或行數前設定斷點

(3) run/r : 表示開始執行,如果是正在除錯的程式的話,表示再次進行除錯

(4) n/next : 表示執行下一行語句

(5) l/list : 列出原始碼預設10行(當前位置的上下共10行)

list 行號 : 列出行號上下共10行的原始碼

list 函式名 : 列出函式名上下共10行的原始碼

(6) s/step : 表示單步執行,進入函式

(7) p /x 變數名 : 按16進製制輸出變數的值

/d : 按10進製

/o : 按八進位制

(8) set var 變數名=值 : 設定變數的值

(9) bt(backtrace) : 檢視各級函式呼叫及引數,簡寫bt

(10)q/quit : 退出

(11)finish : 連續執行到當前函式返回為止,然後停下來等待命令

(12)continue/c : 跳轉到下個斷點,或者跳轉到觀察點

(13)ptype 變數名 : 可以檢視變數的型別,簡寫為pt

(14)wat

如可以監控該變數/記憶體值是否被程式讀/寫情況。

有三種方法:

一旦expr的值有變化時,將停住程式。

2.rwatch expr

當expr被讀時,停住程式。

3.awatch expr

當expr被讀或被寫時,停住程式。

watch使用步驟:

1. 使用break在要觀察的變數所在處設定斷點;

2. 使用run執行,直到斷點;

3. 使用watch設定觀察點;

4. 使用continue觀察設定的觀察點是否有變化。

(15)start : 開始執行程式,停在main函式第一行語句前面等待命令

(16)info watchpoints : 列出所有觀察點

info breakpoints : 檢視當前設定的所有斷點

(17)d/delete [breakpoinsts num] [rang...]

d/delete : 刪除所有斷點

d/delete num : 刪除breakpoints為num的斷點

d/delete num1-num2 : 刪除breakpoints為num1-num2的斷點

(18)enable num : 啟用num號斷點

(19)disable num : 關閉num號斷點

(20)u/until : 結束當前迴圈

gdb --args ./sort arg1 arg2 可以帶引數除錯

gdb基本使用方法簡介

gdb基本使用方法 前言程式 中的錯誤可分為數類,除了最容易除錯的語法錯誤,編譯程式會告訴你錯誤所在外,大部分的錯誤都可以歸類為執行時錯誤。gdb 的功能便是尋找執行時錯誤。如果沒有除錯程式,我們只能在程式中加入輸出變數值的指令來了解程式執行的狀態。有了 gdb 除錯程式,我們可以設定在任何地方停止...

gdb使用方法

一 程式例子 test.c include int fun int n return sum int main printf d n sum int ret 0 ret fun sum printf d n ret return 0 二 編譯 g表示開啟除錯開關 sudo gcc g test.c ...

gdb使用方法

教程見 編譯程式時需要加上 g,之後才能用gdb進行除錯 gcc g main.c o main gdb中命令 gdb tui a.out 除錯中顯示源 gdb help 檢視命令幫助,具體命令查詢在gdb中輸入help 命令,簡寫h gdb start 單步執行,執行程式,停在第一執行語句 gdb...