问题描述
我做了一些崩溃转储调试,在这里我要寻找从生产服务器采取了转储。我上运行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?
EditAdded 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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!