GDB 五、查看内存

欢迎访问我的博客新地址:www.heybrt.tk
 GDB 五、查看内存

如有错误,望请指出,以免害人害己。


//以下两段英文来自 GDB 命令 help x

Examine memory: x/FMT ADDRESS.

ADDRESS is an expression for the memory address to examine.
FMT is a repeat count followed by a format letter and a size letter.
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).
The specified number of objects of the specified size are printed
according to the format.


Defaults for format and size letters are those previously used.
Default count is 1.  Default address is following last thing printed
with this command or "print".



你可以使用examine命令(简写是x)来查看内存地址中的值。x命令的语法如下所示:

Youcan use the command x (for “examine”) to examine memory in any of severalformats, independently of your program’s data types.

x/nfu addr  格式:x/specified number + format letters + size letters   address of variable
addr

x   Use the x command to examine memory.
n、f、u是可选的参数:

n 是一个正整数,表示显示内存的长度,也就是说从当前地址向后显示几个地址的内容。
f 表示显示的格式,参见上面。如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i。
u 表示从当前地址往后请求的字节数,如果不指定的话,GDB默认是4个bytes。u参数可以用下面的字符来代替,b表示单字节,h表示双字节,w表示四字节,g表示八字节。当我们指定了字节长度后,GDB会从指内存定的内存地址开始,读写指定字节,并把其当作一个值取出来。


用gdb查看内存格式解析:

 x/nfu <addr>

说明
x是 examine 的缩写

表示要显示的内存单元的个数


表示显示方式, 可取如下值
x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
i 指令地址格式
c 按字符格式显示变量。
f 按浮点数格式显示变量。


表示一个地址单元的长度
b表示单字节,
h表示双字节,
w表示四字节,
g表示八字节


address 格式 :0x54320  &a  pointer(指针)  都行


n/f/u三个参数可以一起使用。

例如:

命令:x/3uh 0x54320 表示,从内存地址0x54320读取内容,h表示以双字节为一个单位,3表示三个单位,u表示按unsigned decimal显示。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值