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

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

调试器命令窗口

可以通过在调试器命令窗口中输入 u、ub、uu (Unassemble) 命令之一来查看程序集代码。

反汇编窗口

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

以下屏幕截图显示了一个反汇编(Disassembly)窗口的示例。

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

调试器采用一部分内存,将其解释为二进制计算机指令,然后将其反汇编以生成计算机指令的程序集语言版本。 生成的代码显示在反汇编窗口中。

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

  • 若要反汇编另一部分内存,请在 “偏移量” 框中,键入要反汇编的内存的地址。 (键入地址后可以按 Enter,但不必。反汇编窗口在完成地址之前显示代码;可以忽略此代码。

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

反汇编窗口具有一个工具栏,其中包含两个按钮和一个带有其他命令的快捷菜单。 若要访问菜单,请选择并按住标题栏或选择显示在窗口右上角附近的图标。 以下列表描述了一些菜单命令。

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

  • 在当前指令之前进行反汇编 会导致当前行放置在反汇编窗口的中间。 此命令是默认选项。 如果清除此命令,则当前行将显示在反汇编窗口顶部,这样可以节省时间,因为反向反汇编可能很耗时。

  • 突出显示当前源行中的说明 会导致突出显示与当前源行对应的所有指令。 通常,单个源行对应于多个程序集指令。 如果代码已优化,则这些程序集指令可能不是连续的。 此命令使你能够查找从当前源行组装的所有指令。

  • 显示每个指令的源行 显示对应于每个程序集指令的源行号。

  • 显示每个指令的源文件 显示对应于每个程序集指令的源文件名称。

另请参阅

有关程序集调试和相关命令以及程序集显示的完整说明的详细信息,请参阅 程序集模式下的调试