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

2021-09-29 03:27:34 字數 1240 閱讀 1274

命令格式:x/nfu如:

(gdb)x/1xb 0x7fffffffd708

x : examine 的縮寫

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

f : 表示顯示方式, 可取如下值

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

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

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

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

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

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

i 指令位址格式

c 按字元格式顯示變數。

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

u表示乙個位址單元的長度,與n一起表示顯示的位址長度

b表示單位元組,

h表示雙位元組,

w表示四位元組,

g表示八字節

示例程式:(測試htonl()函式)

int main()

編譯除錯;

$gcc -o a.out main.c -g

$gdb a.out

執行到return 0;

(gdb)p/x a

0x401326

(gdb)p &a

(int *) 0x7fffffffd708

(gdb)x/1xb  0x7fffffffd708      顯示0x7fffffffd708(address)處1個(n)1位元組(u)的內容,以十六進製制(x)表示;

0x7fffffffd708: 0x26

(gdb)x/1xb   0x7fffffffd709     a以小端模式存放於記憶體;

0x7fffffffd709: 0x13

(gdb)p/x b         a->b,主機位元組序 -> 網路位元組序, 小端 -> 大端

0x26134000

(gdb)p &b

(int *) 0x7fffffffd70c

(gdb)x/1xb   0x7fffffffd70c

0x7fffffffd70c: 0x00

(gdb)x/1xb   0x7fffffffd70d

0x7fffffffd70d: 0x40

用gdb如何檢視指定位址的記憶體內容?

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

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

gdb檢視指定位址的記憶體位址的值 examine 簡寫 x 使用gdb help x 來檢視使用方式 x n,f,u為可選引數 n 需要顯示的記憶體單元個數 也就是從當前位址向後顯示幾個記憶體單元的內容,乙個記憶體單元的大小由後面的u定義 f 顯示格式 x hex 按十六進製制格式顯示變數。d d...

gdb 如何除錯記憶體位址

int age 20 int p age age nslog p age p p age 輸出指標變數p age指向值20所在記憶體的位址 nslog p age p p age 輸出指標變數p age本身的位址2017 07 19 15 54 07.048 test0719 27387 85807...