我是否应该使用 windbg_x86 在 64 位窗口中调试 32 位应用程序



我使用带有英特尔CPU的Windows 7 x64。 哪个 windbg 工作正常,我应该用于调试 x86 应用程序吗?还有一个类似的问题,我将Windows XP x86安装为用于内核调试的vmware来宾。我的主机是x64 windows 7.我应该使用哪个windbg?,windbg x86或x64进行内核调试?

我不想说RTFM,但在这种情况下,这就是答案所在。以下是 WinDbg 帮助的摘录:

运行 32 位版本的 Windows 的主计算机 如果主计算机运行的是 32 位版本的 Windows,请使用 32 位调试工具。(这种情况适用于基于 x86 和基于 x64 的目标。

运行 64 位版本的 Windows 的基于 x64 的主计算机 如果您的主计算机使用基于 x64 的处理器并运行 64 位版本的 Windows,则以下规则适用:

  • 如果要分析转储文件,则可以使用 32 位调试工具或 64 位调试工具。(转储文件是用户模式转储文件还是内核模式转储文件并不重要,转储文件是在基于 x86 的平台上还是基于 x64 的平台上创建的也不重要。

  • 如果要执行实时内核模式调试,则可以使用 32 位调试工具或 x64 调试工具。(这种情况适用于基于 x86 和基于 x64 的目标。

  • 如果要调试与
  • 调试器在同一台计算机上运行的实时用户模式代码,请使用 64 位工具调试在 WOW64 上运行的 64 位代码和 32 位代码。若要将调试器设置为 32 位或 64 位模式,请使用 .effmach 命令。

  • 如果要调试在单独的目标计算机上运行的实时 32 位用户模式代码,请使用 32 位调试工具。

通常最好将调试器与正在调试的应用程序的体系结构相匹配(有时甚至是必需的)。 对于调试 32 位应用程序,即使在 64 位 Windows 操作系统上,我也建议使用 x86 版本的 WinDbg。 仅当我想调试 32 位应用程序的 WOW64 部分的一部分时,我才会使用 WinDbg 的 x64 版本,这不应该经常发生。

最新更新