GDB调试内存分析

本文介绍了在GDB调试中如何使用examine(x)命令查看内存地址0x7fff5313f65c的数据,包括参数n(打印单元数)、f(格式选择)和u(字节长度),以及示例用法。
摘要由CSDN通过智能技术生成

GDB调试内存分析

在处理问题时需要打印一些变量的信息,进行分析,而有些时候遇到的是地址0x7fff5313f65c,这个时候想要查看这个地址中的数据是什么?又不知道要怎么操作。

在GDB中使用examine(简写x)来查看内存地址中的值。语法: (gdb) x/ (参数)


参数: n, f, u是可选参数。

  • n #表示要打印的单元个数;
  • f #表示打印格式;
  • u #表示单元的大小;

(1)n是一个正整数,表示显示内存的长度,也就是说从当前地址向后显示几个地址的内容。

(2)f表示显示的格式。如果地址所指的时字符串,那么格式可以是s,如果地址是指令地址,那么格式可以是i,其他的如下:

x16进制
d有符号的10进制,默认格式
u无符号的10进制
o8进制
t2进制
a地址
c字符
f浮点
s字符串

(3)u表示从的那个前地址往后请求的字节数,如果不指定的话,GDB默认是4个bytes。当我们指定了字节长度后,GDB会从指定内存的内存地址开始,读写指定字节,并把其当作一个值取出来。u参数可以用下面的字符来代替:

b单字节
w四字节
h双字节
g八字节

eg:

 (gdb) x/3uh buf :从内存地址buf读取内容,h表示以双字节为一个单位,3表示三个单位,u表示按十六进制显示。
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值