• 选择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位的调试工具集!

  • 相关阅读:
    转发 GSLB概要和实现原理
    通过openresty && tengine && nginx 动态添加资源到 html 页面
    Terraform 多云管理工具
    vault key 管理工具
    fabio
    keycloak 了解
    访问交换机的三种方式
    LAN、WAN、WLAN的区别
    浅谈团队贡献分如何分配
    Java程序性能分析工具Java VisualVM(Visual GC)—程序员必备利器
  • 原文地址:https://www.cnblogs.com/yilang/p/11394231.html
Copyright © 2020-2023  润新知