gdb檢視記憶體位址和棧中的值

2021-06-27 02:33:22 字數 1354 閱讀 4340

gdb檢視指定位址的記憶體位址的值:examine 簡寫 x-----使用gdb> help x 來檢視使用方式

x/ (n,f,u為可選引數)

n: 需要顯示的記憶體單元個數

,也就是從當前位址向後顯示幾個記憶體單元的內容,乙個記憶體單元的大小由後面的u定義

f:顯示格式

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

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

u(unsigned decimal) 按十進位制格式顯示無符號整型。

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

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

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

c(char) 按字元格式顯示變數。

f(float) 按浮點數格式顯示變數

u:每個單元的大小,按位元組數來計算。

預設是4 bytes。gdb會從指定記憶體位址開始讀取指定位元組,並把其當作乙個值取出來,並使用格式f來顯示

b:1 byte 

h:2 bytes 

w:4 bytes g:8 bytes

比如x/3uh 0x54320表示從記憶體位址0x54320讀取內容,h表示以雙位元組為單位,3表示輸出3個單位,u表示按照十六進製制顯示。

from

gdb列印表示式的值:print/f 表示式

f是輸出的格式,x/d/u/o/t/a/c/f

表示式可以是當前程式的const常量,變數,函式等內容,但是gdb不能使用程式中所定義的巨集

檢視當前程式棧的內容: 

x/10x $sp

-->列印stack的前10個元素

檢視當前程式棧的資訊: 

info frame

----list general info about the frame

檢視當前程式棧的引數: 

info args

---lists arguments to the function

檢視當前程式棧的區域性變數: 

info locals

---list variables stored in the frame

檢視當前暫存器的值:

info registers

(不包括浮點暫存器) 

info all-registers

(包括浮點暫存器)

檢視當前棧幀中的異常處理器:

info catch

(exception handlers)

from 

GDB檢視指定記憶體位址處的內容

命令格式 x nfu如 gdb x 1xb 0x7fffffffd708 x examine 的縮寫 n 表示要顯示的記憶體單元個數 f 表示顯示方式,可取如下值 x 按十六進製制格式顯示變數。d 按十進位制格式顯示變數。u 按十進位制格式顯示無符號整型。o 按八進位制格式顯示變數。t 按二進位制格...

python中如何檢視某個「常量」的記憶體位址

name admin 後面的admin值賦給變數name name1 name name2 name print id name name print id name1 name1 print id name2 name2 id 返回記憶體位址為什麼這裡的 常量 我用了引號呢,是因為這裡的 常量 是...

Python中檢視變數的型別記憶體位址所佔位元組的大小

python中檢視變數的型別,記憶體位址,所佔位元組的大小 檢視變數的型別 利用內建type 函式 nfc packers 49 afc r ens 48 combine zip nfc,afc type combine 檢視變數的記憶體位址 利用內建函式id 是以十進位制顯示 id nfc 264...