经过大量搜索后,我仍然无法找到该问题的解决方案。
我有一个 mdmp 文件。调用堆栈显示它正在使用 mscorlib.ni.dll。因此,要获取函数信息,我需要获取其 pdb 文件。
mscorlib.ni.dll的版本是2.0.50727.3655。
我相信它来自.Net Framework 3.5。
由于mscorlib.ni.dll是由ngen.exe生成的本机优化的dll,因此我需要使用ngen.exe createpdb为该dll生成pdf。
ngen.exe createpdb "C:\Windows\assembly\...\mscorlib.ni.dll" "C:\SymbolCache"
结果如下:
- 我在文件夹“C:\Windows\Microsoft.NET\Framework64\v3.5”中找不到 ngen.exe
- 我可以在文件夹“C:\Windows\Microsoft.NET\Framework64\v2”中找到 ngen.exe,但它没有 createpdb 选项。
- 我可以在文件夹“C:\Windows\Microsoft.NET\Framework64\v4.0.30319”中找到 ngen.exe,它确实支持 createpdb 选项,但它报告错误。
Microsoft (R) CLR 本机映像生成器 - 版本 4.0.30319.18408
版权所有 (c) Microsoft Corporation。版权所有。无效的
在本机图像中找到标头
'C:\ Windows \ assembly \ NativeImages_v2.0.507
7_64\mscorlib\5cd1c2848ff40eb0a8c149706ee394fa\mscorlib.ni.dll'。
未指定的错误(HRESULT 异常:0x80004005 (E_FAIL))
所以我不知道如何获取Net Framework 3.5的mscorlib.ni.dll的pdb。
任何想法?
我有同样的错误消息,直到我意识到我从框架调用 ngen.exe64文件夹。显然,mscorlib.ni.dll 不是 64 位。
所以我使用了文件夹中的 32 位版本的 ngen.exeC:\Windows\Microsoft.NET\Framework\v4.0.30319
并成功制作了PDB。
但是,mscorlib.ni.dll 的路径包括...\NativeImages_v2.0.507 7_64\...
,这表明它是 64 位,因此这可能是一个不同的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)