我正在调查崩溃的程序,但无法在Visual Studio 2013中加载本机映像DLL的符号.该应用程序是32位并使用.NET 4.0.30319.我通过从模块窗口检查加载到进程中的clr.dll版本来确认这一点.同样从模块窗口,我检查了加载mscorlib.ni.dll的位置:
clr.dll C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
mscorlib.ni.dll C:\Windows\assembly\NativeImages_v4.0.30319_32\mscorlib\ce5f61c5754789df97be8dc991c47d07\mscorlib.ni.dll
Run Code Online (Sandbox Code Playgroud)
我能够成功生成mscorlib.ni.dll的PDB:
但是当我尝试通过右键单击mscorlib.ni.dll的堆栈框架并选择加载符号将其加载到VS 2013中时,我收到一条消息,上面写着"在此文件夹中找不到匹配的符号文件".
我看了看:
创建用于分析报告的Ngen Pdbs / 并遵循生成PDB的简单指令,因为我只想在此时看到函数调用,
如何获取mscorlib.ni.lib的PDB文件(.Net Framework 3.5)
看起来最常见的错误来源是选择正确的位数.我从模块选项卡中知道我正在加载mscorlib.ni.dll的32位变体,再次从我的屏幕截图中,你可以看到我使用的是相同版本的.NET框架和32位版本的Ngen.exe.我为WindowsBase.ni.dll尝试了这个,并且看到了我成功生成PDB但无法加载它的相同行为.
我已启用调试器以及时调试托管和本机代码.
问题:
谢谢!