【发布时间】:2013-01-24 14:37:33
【问题描述】:
在 x86 系统上,一个内存位置可以保存 4 个字节 (32 / 8) 的数据,因此 64 位系统中的单个内存地址可以为每个内存地址保存 8 个字节。当检查 GDB 中的堆栈时,尽管情况似乎并非如此,例如:
0x7fff5fbffa20: 0x00007fff5fbffa48 0x0000000000000000
0x7fff5fbffa30: 0x00007fff5fbffa48 0x00007fff857917e1
如果我有这个权利,那么每个十六进制对 (48) 都是一个字节,因此是第一个内存地址 0x7fff5fbffa20:实际上保存的是16字节的数据,而不是8字节。
这让我非常困惑并且已经有一段时间了,所以绝对非常感谢任何输入。
【问题讨论】:
标签: macos gdb 64-bit x86-64 memory-address