调试 WOW64

可以通过两种方式调试在 WOW64 下运行的应用程序:

  • 使用 x86 托管的调试器,例如 NTSD、WinDbg 或 Visual Studio。 32 位 NTSD 安装在零售安装的 %systemroot%\syswow64 中。 请注意,x86 调试器可用于调试 x86 代码,但不能用于在 WOW64 thunk 层中反汇编或设置断点,因为它是 64 位本机代码。
  • 使用本机调试器(如 CDB、NTSD 或 WinDbg)和 WOW64 调试器扩展Wow64exts.dll。 如果本机调试器在处理器处于 x86 模式时中断,则调试器会将进程显示为 x86 进程。 如果处理器处于本机模式,则调试器会将进程显示为本机。

CDB、NTSD 和 WinDbg 包含在 Windows 调试工具中。 有关详细信息,请参阅 Windows 调试工具 文档。

Wow64exts 调试器扩展随 WinDbg 一起安装。 使用 !load wow64exts 命令加载调试器扩展。 下表列出了 !wow64exts 调试器扩展命令。

命令 说明
!wow64exts.sw 在 x86 和本机模式之间切换。
!wow64exts.k count 转储组合的 32 位/64 位堆栈跟踪。 如果指定 了 count ,该命令将转储每个堆栈跟踪中的第一个 计数 地址。
!wow64exts.info 转储有关进程的 PEB、当前线程的 TEB 和线程本地存储的基本信息, (WOW64 使用的 TLS) 槽。
!wow64exts.r address 转储指定地址的上下文。 如果未指定 address ,则命令将转储处理器的上下文。