Windbg 32位版本和64位版本的选择

开发 后端
当你安装Debugging Tools for Windows的时候,你将发现有两个系列的工具,一系列32位的工具和一系列64位的工具。这让人觉得和费解,我们该如何选择呢?

用惯了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位的调试工具集。使用 .effmach命令设置调试器的模式。

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

总结

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

原文链接:http://www.cnblogs.com/pugang/archive/2012/11/16/2772651.html

【编辑推荐】

  1. Visual Studio 2012的C++原生单元测试
  2. Visual Studio 2012 Ultimate RC安装手记
  3. VS 2012单元测试和测试资源管理器
  4. 微软正式发布 Visual Studio 2012
  5. Visual Studio 11下的C++异步编程1

责任编辑:彭凡 来源: 博客园
相关推荐

2009-02-09 08:47:32

Silverlight64位微软

2009-12-18 09:15:03

2011-07-18 14:17:19

Firefox 8Windows

2010-12-23 10:02:18

Visual Stud

2009-04-15 08:51:29

Windows 7微软操作系统

2009-04-14 21:53:29

Windows 7微软软件

2012-11-22 17:29:11

FireFox

2022-02-03 23:50:11

Windows 11Windows 10微软

2012-05-07 23:45:54

FantomJavaJVM

2010-06-08 09:45:27

openSUSE 11

2012-03-06 13:45:43

JavaJActor

2015-09-10 16:06:06

32位64位Windows 10

2010-08-26 17:08:20

vsftpd faq

2009-07-08 16:45:07

Servlet 2.5

2009-06-18 09:14:47

Spring modu

2012-05-09 09:11:52

Silverlight

2010-06-08 10:34:23

opensuse 10

2009-07-16 16:53:29

Jython 2.5

2014-07-04 13:33:03

jQueryjQuery Mobi

2010-11-09 16:03:27

点赞
收藏

51CTO技术栈公众号