获取WinDBG的正确的.NET本地symols [英] Get the right .net native symols for Windbg

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

问题描述

我做了一些崩溃转储调试,在这里我要寻找从生产服务器采取了转储。我上运行WinDbg的机器必须有一个稍微不同的版本安装的.NET运行时 - 我得到错误装载的.NET系统集的本机映像(所以不能加载例如将System.Data.Linq )。



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



修改
加LMV的输出托马斯·韦勒

  000007fb`68660000 000007fb`68993000 System_Data_Linq_niç (PDB符号)C:\Program Files\Debugging工具的Windows(x64)的\sym\System.Data.Linq.pdb\703A918D116A4558BB44245924371ACD1\System.Data.Linq.pdb 
加载符号图像文件:System.Data.Linq.ni.dll
映像路径:C:\Windows\assembly\NativeImages_v4.0.30319_64\System.Data.Linq\acbd568cd3c2499fbb7b2639c4a46a81\System.Data.Linq。 ni.dll
图片名称:System.Data.Linq.ni.dll
已经CLR映像头,没有设置跟踪调试数据标志
时间戳:周五4月11日20点41分26秒2014年(534899C6)
校验:00000000
IMAGESIZE:00333000
文件版本:4.0.30319.34209
产品版本:4.0.30319.34209
档标志:0(掩码3F)
档OS:4未知的Win32
文件类型:2.0的Dll
档日期:00000000.00000000
翻译:0000.04b0 0000.04e4 0409.04b0 0409.04e4


解决方案

NI 在名称显示这是一个原生的版本(NGEN优化)从不同的机器对机器。你必须在那里你得到了与NGEN的DMP机器上创建PDB:

  NGEN createpdb C:\Windows\ assembly\NativeImages_v4.0.30319_32\System.Data.Linq\ 
f989891b3a507d4aaec44ab1df12e9d5\System.Data.Linq.ni.dll C:\symbols /调试

现在加上从C PDBS:\symbols到Windbgs符号路径


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?

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

解决方案

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

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

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

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