格式: x /nfu 說明
x 是 examine 的縮寫
n表示要顯示的記憶體單元的個數
f表示顯示方式, 可取如下值
x 按十六進製制格式顯示變數。
d 按十進位制格式顯示變數。
u 按十進位制格式顯示無符號整型。
o 按八進位制格式顯示變數。
t 按二進位制格式顯示變數。
a 按十六進製制格式顯示變數。
i 指令位址格式
c 按字元格式顯示變數。
f 按浮點數格式顯示變數。
u表示乙個位址單元的長度
b表示單位元組,
h表示雙位元組,
w表示四位元組,
g表示八字節
format letters are o(octal), x(hex), d(decimal), u(unsigned decimal),
t(binary), f(float), a(address), i(instruction), c(char) and s(string).
size letters are b(byte), h(halfword), w(word), g(giant, 8 bytes) 舉例
x/3uh buf
表示從記憶體位址buf讀取內容,
h表示以雙位元組為乙個單位,
3表示三個單位,
u表示按十六進製制顯示
eg:(gdb) p record
$10 =
(gdb) p &record
$11 = (int (*)[10]) 0x8049740
(gdb) x/4uw 0x8049740
0x8049740 : 12 76 48 62
(gdb) x/6ow 0x8049740
0x8049740 : 014 0114 060 076
0x8049750 : 0136 021
另外可以有:
watch *(int*)0x23fa00
x 也可以訪問私有變數
gdb 檢視記憶體
曾經被電面到乙個題目,如何判斷乙個系統是大端還是小端,方法其實很簡單 int main 在linux 的執行結果 gcc test.c a.out echo 120120 即 0x78,證明低位放在了低位址,所以是小端系統 little endian 這樣說可能不夠直觀,而且記憶體中怎麼分布本來就比...
GDB教程 檢視記憶體)
先看 n f u是可選的引數,表示乙個記憶體位址 1 n 是乙個正整數,表示顯示記憶體的長度,也就是說從當前位址向後顯示幾個位址的內容 2 f 表示顯示的格式 3 u 表示將多少個位元組作為乙個值取出來,如果不指定的話,gdb預設是4個bytes,如果不指定的話,預設是4個bytes。當我們指定了位...
用gdb檢視記憶體
用gdb檢視記憶體 格式 x nfu 說明 x 是 examine 的縮寫 n表示要顯示的記憶體單元的個數 f表示顯示方式,可取如下值 x 按十六進製制格式顯示變數。d 按十進位制格式顯示變數。u 按十進位制格式顯示無符號整型。o 按八進位制格式顯示變數。t 按二進位制格式顯示變數。a 按十六進製制...