【发布时间】:2021-07-17 16:48:53
【问题描述】:
我无法弄清楚为什么 GDB 在检查 RAM 地址时会返回不同的结果,这取决于我是否事先检查了我的字符串:
- 如果我检查我的字符串(0x404028 地址中的“hello, world”),当我检查主函数中的地址时,GDB 会返回一个字节(x/x 0x401110 = 0xb8)
- 如果我在没有事先检查字符串的情况下检查主函数,则 GDB 将返回 4 个字节 (x/x 0x401110 = 0x000001b8)
进一步检查地址表明 0x401111 本质上是 0x401110 移位了 1 个字节,依此类推。 我想知道哪个是准确的, 0x401110 实际上是指 4 个字节还是一个字节。 Both results + x86_64 Assembly source code
【问题讨论】: