在C#项目中,我在UnhandledException中创建了minidump。 在我的Dev机器中,项目源和bin在路径K:\ projects \ * MYPROJECT *下,如果我设法让它在我的Dev机器中崩溃,一切正常,我可以打开minidump文件并正确查看源代码,callstack ,线程等。
最终用户程序路径显然会有所不同;例如,我们的测试机器项目安装在C:\ * MYPROJECT *下。它与pdb符号文件一起部署。无论如何,当我尝试在我的开发计算机(我有源文件)上打开在该机器上生成的minidump时,Visual Studio尝试在“测试路径”下找到可执行文件和pdb文件(C:\ * MYPROJECT * )当然没有找到它。
我尝试将Symbol路径设置为包含K:\ projects * MYPROJECT *而没有任何结果,因此我重新创建了相同的Test目录结构,创建了C:\ * MYPROJECT *并复制了该目录下的.exe和.pdb文件。现在,Visual Studio能够找到它们,但是它说的是“符号文件中没有原生符号”,它不会让我看到任何源代码。
如何加载正确的符号?
答案 0 :(得分:0)
要更改目录,Microsoft describes要打开即时窗口,请输入.exepath [path]进行更改。
您还可以使用.srcpath [path]和.sympath [path]。
答案 1 :(得分:0)
终于遇到了一个解决方案。
经过几周的努力弄清楚我错过了什么,我发现在我的开发机器上我有一个不同的Framework版本(详细信息,我测试的是v4.0.30319.18444 vs v4.0.30319.17929)机)。我仍然不明白为什么我不能在没有确切的Framework版本的情况下调试我的应用程序,但解决方案是复制mscordacwks.dll和mscordbi.dll(两者都在C:中找到) Windows \ Microsoft.NET \ Framework)从测试机器到minidump所在的文件夹。