这个地址如何保存这么多数据?

时间:2015-04-13 23:43:01

标签: memory gdb

不确定这是否是一个明显可怕的误解,但我一直在检查记忆方面遇到这么麻烦。以下是使用x/8w进行检查的gdb中的以下内容。

0xbffff7a0: 0xb7f9f729 0xb7fd6ff4 0xbffff7d8 0x08048529
0xbffff7b0: 0xb7fd6ff4 0xbffff870 0xbffff7d8 0x00000000

因此,我假设0xb7f9f729位于0xbffff7a0,然后0xb7fd6ff4位于0xbffff7a4,等等。您能解释一下这是如何工作的吗?那是从第一个存储器部分到下一个存储器部分的16个字节,每4个字节是否包含它自己的字?

我很难掌握这个记忆概念,任何人都知道一个很好的资源,让学习变得更容易吗?

1 个答案:

答案 0 :(得分:2)

是的,两个问题都是。

gdb(1)w命令中的x/8w修饰符理解为“四字节字”,因此您将以四个为一组打印32个字节。 gdb(1)只是为了便于阅读而在短线中排除它们。

我应该提一下,打印的确切值实际上取决于platform endianness

您可以使用x/32获得类似但可能更易理解的布局。

全部都在the fine manual