GDB教程 檢視記憶體)

2021-06-18 17:20:45 字數 831 閱讀 2357

先看

n、f、u是可選的引數,表示乙個記憶體位址

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

2) f 表示顯示的格式

3) u 表示將多少個位元組作為乙個值取出來,如果不指定的話,gdb預設是4個bytes,如果不指定的話,預設是4個bytes。當我們指定了位元組長度後,gdb會從指記憶體定的記憶體位址開始,讀寫指定位元組,並把其當作乙個值取出來。

引數 f 的可選值:

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

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

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

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

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

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

c 按字元格式顯示變數。

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

引數 u 可以用下面的字元來代替:

b 表示單位元組

h 表示雙位元組

w 表示四字 節

g 表示八字節

例如:

(gdb) p record

$10 =

(gdb) p &record

$11 = (int (*)[10]) 0x8049740

(gdb)x/4uw0x8049740

0x8049740 :    12    76    48    62

(gdb)x/6ow0x8049740

0x8049740 :    014    0114    060    076

0x8049750 :    0136    021

gdb檢視記憶體

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

gdb 檢視記憶體

曾經被電面到乙個題目,如何判斷乙個系統是大端還是小端,方法其實很簡單 int main 在linux 的執行結果 gcc test.c a.out echo 120120 即 0x78,證明低位放在了低位址,所以是小端系統 little endian 這樣說可能不夠直觀,而且記憶體中怎麼分布本來就比...

用gdb檢視記憶體

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