可以通过两种方式调试 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 计数 | 转储组合的 32 位/64 位堆栈跟踪。 如果指定了计数,则命令将在每个堆栈跟踪中转储前若干个地址,此地址数即为该计数。 |
!wow64exts.info | 转储有关进程的 PEB、当前线程的 TEB 以及 WOW64 使用的线程本地存储 (TLS) 槽的基本信息。 |
!wow64exts.r 地址 | 转储指定地址的上下文。 如果未指定地址,则命令会转储处理器的上下文。 |