博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windbg 32位版本和64位版本的选择
阅读量:4112 次
发布时间:2019-05-25

本文共 947 字,大约阅读时间需要 3 分钟。

习惯了Vsiual Studio的兄弟们可能会因为先入为主的原因以为所有的调试器都应该像它那样,其实不然,当你安装Debugging Tools for Windows的时候,你将发现有两个系列的工具,一系列32位的工具和一系列64位的工具。这让人觉得和费解,因为在我们安装Microsoft Visual Studio的时候你根本不需要考虑32位还是64位。

如果你正使用windbg调试工具集(WinDbg, KD, CDB, or NTSD)中的一个,你必须得自己做出选择。为了选择合适的调试工具,你需要知道以下两点:

1. 你的调试主机的处理器类型。

2. 你的调试主机运行的是32位版本的windows还是64位版本的。


PS:运行调试器的计算机我们成为调试主机,被调试的计算机我们称为目标机。


调试主机运行32位版本的windows

如果你的调试主机运行的是32位版本的windows,使用32位的调试工具(不管此时被调试的目标机是 x86-based 还是 x64-based)。


x64-based调试主机运行64位的windows

如果你的调试主机使用x64-based的处理器,并且运行64位的windows,请参考如下规则:

  • 如果你在分析dump文件,你可以使用32位或者64位的调试工具集。(不管dump文件是用户态的还是内核态的,也不管这个dump文件是在 x86-based 还是 x64-based的平台上抓的。

  • 如果你在进行实时内核调试,你可以使用32位或者64位的调试工具集(不管此时被调试的目标机是 x86-based 还是 x64-based

  • 如果你在进行实时用户态调试,并且调试器也在同一台机器上,对于64位的代码和32位的 WOW64代码都需要使用64位的调试工具集。使用 命令设置调试器的模式。

  • 如果你在实时调试32位的用户态代码,但是这些代码运行在一个单独的目标机器上,使用32位的调试工具集。

  •  

  • 总结

    只有在实时用户态调试,并且调试器也在同一台64位机器上的情况下必须用64位的调试工具集!

https://github.com/EasyDarwin/Tools/blob/master/Windbg_x86_x64/dbg_amd64.msi

转载地址:http://jmesi.baihongyu.com/

你可能感兴趣的文章
Ubuntu 16.04 apt-get更换为国内阿里云源
查看>>
laravel部署到宝塔步骤
查看>>
小程序获取access_token
查看>>
navicat远程连接mysql数据库
查看>>
tp5令牌数据无效 解决方法
查看>>
自己的网站与UCenter整合(大致流程)
查看>>
laravel 制作通用的curd 后台操作
查看>>
【小红书2017年笔试】求一个数组中平均数最大的子数组
查看>>
【java基础】父类与子类中各成员初始化顺序
查看>>
maven安装并在eclipse中配置
查看>>
三种常见字符编码简介:ASCII、Unicode和UTF-8
查看>>
【剑指offer】链表中倒数第K个节点
查看>>
http 请求中的 referer
查看>>
【携程2018校招】数组中非零元素稳定的放到数组前面,零元素放到数组后面
查看>>
【Mac终端】 root与普通用户切换(root/bash-3.2/sh-3.2/MacBook-Pro区别)
查看>>
【rabbitMQ之二】rabbitMQ之工作队列(消息ACK、消息持久化、公平分派)-go语言
查看>>
【git】git的origin和master分析
查看>>
Golang 新手可能会踩的 50 个坑-值得一看,强力推荐
查看>>
ubuntu安装opendr
查看>>
C++ 实现多线程:生产者消费者模型
查看>>