我不知道这是否是一个非常可怕的误会,但我在检查记忆方面遇到了很大的困难。下面是使用x/8w检查gdb的如下内容。
0xbffff7a0: 0xb7f9f729 0xb7fd6ff4 0xbffff7d8 0x08048529
0xbffff7b0: 0xb7fd6ff4 0xbffff870 0xbffff7d8 0x00000000所以我假设0xb7f9f729在0xbffff7a0,0xb7fd6ff4在0xbffff7a4等等,你能解释一下这是如何按字节工作的吗?是从第一个内存部分到下一个内存部分的16个字节,每个4个字节包含它自己的单词吗?
我很难理解这个记忆概念,谁知道一个让学习更容易的好资源?
发布于 2015-04-14 01:53:57
对两个问题都是肯定的。
gdb(1)将x/8w命令中的w修饰符理解为“四个字节单词”,因此您将以四个组的形式打印32个字节。gdb(1)只是在短行中列出它们,并为可读性设置了偏移量。
我应该指出,所打印的确切值实际上取决于平台endianness。
您将得到类似的,但可能更容易理解的布局与x/32。
都是用the fine manual写的。
https://stackoverflow.com/questions/29616839
复制相似问题