为什么 Visual Studio 调试器有时会在 REX 指令前缀后停止一个字节?

问题描述 投票:0回答:1

有时,当在 Visual Studio 调试器中闯入程序时,我会看到以下奇怪的现象:

screenshot

调试器似乎将下一个指令字节显示为在指令的 REX 前缀之后开始。

这不仅令人困惑,而且它也明显抛弃了调试器本身,因为它发现自己无法显示前面指令的反汇编结果。

然而,令人困惑的是,当继续执行时,程序似乎运行良好。

为什么会出现这种情况?调试器只是错误地“显示”下一条指令,还是实际上以某种方式从该字节开始执行?

在您的图片中,您可以看到 80x86 CPU 上的机器代码长度是
visual-studio debugging assembly visual-c++ x86
1个回答
0
投票
固定的。

因此,任何调试器都无法理解之前机器代码的起始指针。 因此,任何调试器都无法找到正确的指针来解码之前的机器代码。 所以,只要打个问号就可以解决这个问题!


© www.soinside.com 2019 - 2024. All rights reserved.