windbg作为调试器的一种,是非常方便的,可以在没有visual studio 等开发工具的情况下调试并进行问题追踪,并且利用该工具可以进行dump file的抓取。一般情况下客户在运行我们开发的应用程序的时候,机器上是没有安装visual studio 的,他们也一般不运行安装开发环境,如果要进行问题跟踪,可以利用windbg,该工具是免安装的,可以从其他机器上copy到目标机器上,然后attach到要调试的进程,然后进行调试。
windbg有两种版本x86和x64, 那么我们在选取的时候的原则是什么呢?
如果应用程序编译的时候目标平台(target platform)是x64,那么你必须选择windbg x64版本,否则你在attach 你的应用程序的时候就会抛出“不支持”的对话框:
如果你的应用程序编译时候目标平台(target platform)是x86,那么你必须选择windbg x86,如果你选择的是 x64的windbg,那么attach应用程序后,在加载sos(托管代码调试扩展库)的时候就会出"unsupport"的结果:
如果你的应用程序编译时候目标平台(target platform)是any cpu, 那么就跟运行该应用程序的操作系统和编译设置有关,如果程序运行时是按照x86运行时,则需要windbg x86, 如果运行时按照x64运行,则需要windbg x64版本。