我使用带有英特尔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 版本,这不应该经常发生。