GDB除錯命令整理

2021-09-30 07:34:34 字數 1650 閱讀 3408

-----------基本功能---------------------

列印堆疊 bt(backtrace)

檢視**

根據行號 list xx 檢視xx行**

檢視除錯所處範圍(當前偵) frame

斷點新增斷點

根據行號新增 break xx,在xx行新增斷點

break +xx, 在當前行前面xx行新增斷點

break -xx, 在當前行後面xx行新增斷點

根據檔名和行號新增

break file:linenum 在檔案file的第linenum加斷點

根據檔名和函式名新增斷點

break file:function

在檔案file的fucntion函式的入口處停止

根據條件停止

break if [condition]

觀察點watch

為表示式(變數)expr設定乙個觀察點。一量表示式值有變化時,馬上停住程式。

rwatch

當表示式(變數)expr被讀時,停住程式。

awatch

當表示式(變數)的值被讀或被寫時,停住程式。

info watchpoints

列出當前所設定了的所有觀察點。

display expretion

觀察expretion的值

info display 檢視display狀態

臨時檢視變數

print expretion [format]

或者p按照format來列印expretion的值,如/x就是16進製制列印

-------格式如下---------------

x 按十六進製制格式顯示變數。

d 按十進位制格式顯示變數。

u 按十六進製制格式顯示無符號整型。

o 按八進位制格式顯示變數。

t 按二進位制格式顯示變數。

a 按十六進製制格式顯示變數。

c 按字元格式顯示變數。

f 按浮點數格式顯示變數。

p *array@len

檢視指標所指的len個變數

執行時修改變數值

檢視記憶體

examine/x[n/f/u]

n 是乙個正整數,表示顯示記憶體的長度,也就是說從當前位址向後顯示幾個位址的內容。

f 表示顯示的格式,參見上面。

如果位址所指的是字串,那麼格式可以是s,如果地十是指令位址,那麼格式可以是i。

u 表示從當前位址往後請求的位元組數,如果不指定的話,gdb預設是4個bytes。

u引數可以用下面的字元來代替,b表示單位元組,h表示雙位元組,w表示四位元組,g表示八字節。

當我們指定了位元組長度後,gdb會從指記憶體定的記憶體位址開始,讀寫指定位元組,並把其當作乙個值取出來。

單步執行

continue [ignore-count]

c[ignore-count]

fg[ignore-count]

恢復程式執行,直到程式結束,或是下乙個斷點到來。

ignore-count表示忽略其後的斷點次數。continue,c,fg三個命令都是一樣的意思。

step 單步跟蹤,進入函式體

next 單步,不進入函式體

跳出函式

until或u

結束除錯

finish

gdb 跟蹤除錯命令整理

內容源自於陳浩csdn部落格的用gdb除錯程式一系列文章 要進行除錯程式首先要生成乙個含有除錯資訊的執行程式命令如下 此時便會生成乙個含有除錯資訊的可執行檔案,然後便可以用 gdb 去除錯這個程式了,進入除錯程式命令,但是如果用 gdb 去除錯乙個未包含除錯資訊的可執行檔案則會發生錯誤 執行 gdb...

整理常用的gdb除錯的命令

命令 描述file filename 裝入想要除錯的可執行檔案 kill filename 終止正在除錯的程式 break file function 在 file檔案的 function函式中設定乙個斷點 clear 刪除乙個斷點,這個命令需要指定 行或者函式名作為引數 run arglist 執...

gdb除錯命令

一 gdb常用命令簡介 rrun 執行.程式還沒有執行前使用 c cuntinue 執行到下一斷點處 qquit 退出tab tab命令補全功能 h help幫助s step 跟入函式 nnext 執行下一行的 如果是函式呼叫,也當作一行 執行到此函式返回 b breakpoint 設定斷點,用法 ...