gdb中x的用法

本文转载自:gdb ---- x命令详解

作者:Adam_0
链接:https://www.jianshu.com/p/589308dd36dc
来源:简书

examine命令缩写为x
格式:

1
x/<n/f/u>  <addr>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
n:是正整数,表示需要显示的内存单元的个数,即从当前地址向后显示n个内存单元的内容,
一个内存单元的大小由第三个参数u定义。

f:表示addr指向的内存内容的输出格式,s对应输出字符串,此处需特别注意输出整型数据的格式:
x 按十六进制格式显示变量.
d 按十进制格式显示变量。
u 按十进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
c 按字符格式显示变量。
f 按浮点数格式显示变量。
i 指令地址格式

u:就是指以多少个字节作为一个内存单元-unit,默认为4。u还可以用被一些字符表示:
如b=1 byte, h=2 bytes,w=4 bytes,g=8 bytes.

<addr>:表示内存地址。
Format letters are o(octal), x(hex), d(decimal), u(unsigneddecimal),
t(binary), f(float), a(address), i(instruction), c(char) and s(string).
Size letters are b(byte), h(halfword), w(word), g(giant, 8bytes)

举例:
x/3uh buf
表示从内存地址buf读取内容,

3表示三个单位,
u表示按十六进制显示
h表示以双字节为一个单位