安装Windows调试工具时,您将同时获得32位工具集和64位工具集。如下图
如果使用的是Microsoft Visual Studio调试环境,则无需考虑是否使用32位或64位,因为Visual Studio会自动选择正确的调试工具。如果您使用的是其他调试环境(windbg、kd、cdb或ntsd),则必须自己做出选择。
运行调试器的计算机称为主机,。
一、相关概念
- 调试主机 (Host computer)
在调试环境下,运行调试器(比如Windbg)的计算机称为主机。 - 调试目标机(Target computer)
被调试的计算机称为目标计算机
二、选择标准
选择标准就是以主机和目标机以及调试对象来划分的。要确定要使用的调试工具集,您需要知道主机上运行的处理器类型以及主机运行的是32位还是64位版本的Windows。
2.1、当主机为32位机时
也就是说主机是32位的cpu且是32位的Windows系统时,请使用32位调试工具。此情况适用于基于x86和基于x64的目标。
2.2、当主机位64机位时
如果主机使用基于x64的处理器,并且运行64位版本的Windows,则应用以下规则:
- 如果分析对象是转储文件,可以使用32位调试工具或64位调试工具。(转储文件是用户模式转储文件还是内核模式转储文件并不重要,转储文件是基于x86还是基于x64的平台生成也不重要。)
- 如果正在执行实时内核模式调试,则可以使用32位调试工具或x64调试工具。(此情况适用于基于x86和基于x64的目标。)
- 如果要调试与调试器在同一台计算机上运行的实时用户模式代码,请使用64位工具调试在WOW64上运行的64位代码和32位代码。要将调试器设置为32位或64位模式,请使用.effmach命令。
- 如果要调试在单独目标计算机上运行的实时32位用户模式代码,请使用32位调试工具。
总之,只有在实时用户态调试,并且调试器也在同一台64位机器上的情况下必须用64位的调试工具集!