选择32位或64位调试工具

安装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位的调试工具集!

 

posted on 2019-08-22 14:43  活着的虫子  阅读(763)  评论(0编辑  收藏  举报

导航