【发布时间】:2016-04-01 13:09:27
【问题描述】:
当我尝试调试转储文件时出现错误:
找不到mscoreei.dll
在小型转储中找不到 mscoreei.dll。您需要加载二进制文件才能找到当前堆栈帧的来源。
我有一个 C# 项目,有时会挂在其他计算机上。每次挂起时,“procdump”应用程序都会为我创建 minidump 文件。以前我在VS2015中可以正常打开这个dump文件,这显示我在源代码中卡住了。
一切正常,直到我在存储库中进行了“清理”。我没有在代码中添加任何行,我只是清理了存储库,我所有的 .pdb 文件都被删除了。我再次构建项目以恢复 .pdb 文件。但是现在当我尝试调试转储文件时,VS2015 显示页面“未找到二进制文件”,上面写有错误消息。
我没有对源代码进行任何更改。我没有修改我的环境。当我清理存储库时,调试停止工作。
当我检查“堆栈帧”列表时,“mscoreei.dll!7311ffcc”之后出现的所有内容都具有格式“[下面的帧可能不正确和/或丢失,没有为 文件名]"。
【问题讨论】:
-
即包含CLR的dll
-
好吧,如果我创建一个新项目并为此项目创建一个新的转储文件,那么一切正常。
-
那么很可能你在那个解决方案中搞砸了一些导致问题的东西
-
拥有匹配的 PDB,其时间戳与您从中获取 minidump 的机器上的二进制文件完全匹配是至关重要的。你删除了它们,哎呀。你已经完成了这个会话,用新的二进制文件更新机器,以便下一个 minidump 可以工作。并确保保留这些 PDB,源服务器始终是最好的。
标签: c# .net debugging visual-studio-2015