gdb调试进阶之查看指定内存中的内容

本文介绍了如何使用GDB进行高级调试,特别是如何查看数组和指定内存地址的内容。通过`print`命令查看数组元素,利用`examine`(或其缩写`x`)命令检查特定内存地址,并通过`x/4dw a`格式来展示数组a的前四个double字节元素。同时,还提到了`display`命令用于自动显示变量的值。

查看数组中的内容:print(缩写p)命令

print *array@len

array是数组第一个元素的地址,可以使用具体的地址或者数组名;len是要显示的元素个数。

int a[4] = {1, 2, 3, 4}

显示数组a的内容:print *a@4


查看指定地址的内容:examine(缩写x)命令

x/nfu addr

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

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

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

显示数组a的内容:x/4dw a,得到的显示为:0x28fedc:       1       2       3       4;其中0x28fedc就是a[0]的地址值


自动显示:display

display/fmt expr
display/fmt addr
/fmt就是指定显示的格式,如x命令中的nfu。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值