WinDbg(经典)中的汇编代码调试

在 WinDbg 中,可以通过输入命令或使用“反汇编”窗口来查看汇编代码。

调试器命令窗口

在调试器命令窗口中输入 u、ub、uu(反汇编)命令之一即可查看汇编代码。

“反汇编”窗口

要打开或切换到拆卸窗口,请从“视图”菜单中选择“反汇编”。 (也可以按 ALT+7 或选择工具栏上的“反汇编”按钮。ALT+SHIFT+7 将关闭反汇编窗口。)

以下屏幕截图显示了“反汇编”窗口的示例。

WinDbg 中“反汇编”窗口的屏幕截图。

调试器会获取一段内存,将其解释为二进制计算机指令,然后进行反汇编,以便生成计算机指令的汇编语言版本。 生成的代码将显示在“反汇编”窗口中。

在”反汇编“窗口中,可以执行以下操作:

  • 要对不同部分的内存进行反汇编,请在“偏移量”框中键入要反汇编的内存的地址。 (键入地址后可以按 Enter,但并非必须。)在输入地址之前,“反汇编”窗口会显示代码;这些代码可被忽略。

  • 要查看内存的其他部分,请选择“上一个”或“下一个”按钮,或者按 PAGE UP 或 PAGE DOWN 键。 这些命令将分别显示前一段或后一段内存的反汇编代码。 按右箭头、左箭头、上箭头和下箭头键可在窗口中导航。 如果使用这些键离开页面,则会出现一个新的页面。

“反汇编”窗口具有一个工具栏,其中包含两个按钮,还有一个包含其他命令的快捷菜单。 要访问此菜单,请选择并按住标题栏或选择窗口右上角附近的图标。 下面列出了一些菜单命令。

  • 转到当前地址可打开“源”窗口,其中包含与“反汇编”窗口中选定行相对应的源文件,并突出显示该行。

  • 在当前指令前反汇编会使当前行位于“反汇编”窗口的中间。 此命令为默认选项。 如果清除此命令,则当前行将显示在“反汇编”窗口的顶部,这样可以节省时间,因为反向反汇编可能很耗时。

  • 突出显示当前源代码行的指令会让与当前源代码行相对应的所有指令都突出显示。 通常情况下,一个源行会对应多个汇编指令。 如果代码经过了优化,这些汇编指令可能不是连续的。 可以使用此命令来查找当前源行中的所有汇编指令。

  • 显示每条指令的源行会显示每个汇编指令对应的源行号。

  • 显示每条指令的源文件会显示与每条汇编指令相对应的源文件名。

另请参阅

有关汇编调试和相关命令的更多信息,以及汇编显示的完整说明,请参阅在汇编模式下调试