为Windbg获取正确的.net本机符号 [英] Get the right .net native symbols for Windbg

查看:128
本文介绍了为Windbg获取正确的.net本机符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在进行一些故障转储调试,在其中查找从生产服务器获取的转储.我在其上运行WinDbg的计算机必须安装稍有不同的.NET运行时版本-加载.NET系统程序集的本机映像时出现错误(因此无法加载例如System.Data.Linq).

I'm doing some crash dump debugging, where I am looking a dump taken from a production server. The machine I'm running WinDbg on must have a slightly different version of the .NET runtime installed -- I'm getting errors loading the native images of .NET system assemblies (so can't load for example System.Data.Linq).

确保调试机器可以访问所有正确符号的最佳方法是什么?

What is the best way to ensure that my debug machine has access to all the right symbols?

修改 为托马斯·韦勒增加了lmv的输出

Edit Added output of lmv for Thomas Weller

000007fb`68660000 000007fb`68993000   System_Data_Linq_ni C (pdb symbols)          C:\Program Files\Debugging Tools for Windows (x64)\sym\System.Data.Linq.pdb\703A918D116A4558BB44245924371ACD1\System.Data.Linq.pdb
    Loaded symbol image file: System.Data.Linq.ni.dll
    Image path: C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Data.Linq\acbd568cd3c2499fbb7b2639c4a46a81\System.Data.Linq.ni.dll
    Image name: System.Data.Linq.ni.dll
    Has CLR image header, track-debug-data flag not set
    Timestamp:        Fri Apr 11 20:41:26 2014 (534899C6)
    CheckSum:         00000000
    ImageSize:        00333000
    File version:     4.0.30319.34209
    Product version:  4.0.30319.34209
    File flags:       0 (Mask 3F)
    File OS:          4 Unknown Win32
    File type:        2.0 Dll
    File date:        00000000.00000000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4

推荐答案

名称中的ni表明这是一个本机版本(已对ngen优化),因机器而异.您必须在具有ngen的dmp的计算机上创建PDB:

the ni in the name shows that this is a native version (ngen optimized) which differs from machine to machine. You have to create the PDB on the machine where you got the dmp with ngen:

ngen createpdb C:\Windows\assembly\NativeImages_v4.0.30319_32\System.Data.Linq\
f989891b3a507d4aaec44ab1df12e9d5\System.Data.Linq.ni.dll c:\symbols /debug

现在将C:\ symbols中的PDB添加到Windbgs符号路径中.

Now add the PDBs from C:\symbols to Windbgs symbol path.

这篇关于为Windbg获取正确的.net本机符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆