2

在 Visual Studio 中,是否可以在单步执行每个语句时编辑汇编语言代码(以便在程序运行时修改程序中的语句?)在程序运行时修改程序中的语句会很有用(用于调试目的),但我不确定这是否可行。

4

1 回答 1

1

您可以修改源代码,但在调试会话期间它不会被重新组装以生成新的二进制文件。调试器会告诉你“源代码不再匹配”,但你仍然可以单步执行。您的显示可能令人困惑,因为源代码不再与目标代码匹配:-} 我经常在说明中或在空白行中添加注释,这让我感到不满,但您仍然可以单步执行并查看正确的源代码在这种特殊情况下的行。

我认为您可以手动修改包含要修补的指令的内存。我从来没有费心去做这件事;在我所在的位置设置断点,重新组装,然后运行到断点更容易。

你可以很容易地修改所有的寄存器和数据存储器(实际上你必须用它来修改代码存储器,我想!)。

一个非常有用的事情是“设置下一条语句”,将 PC 设置回代码中较早的位置;如果没有更改寄存器和内存,您通常可以前进到故障点。(将光标放在源代码或反汇编窗口中,单击一行,然后右键单击“设置下一条语句”)

于 2013-03-21T19:48:46.130 回答