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

被折叠的 条评论
为什么被折叠?



