Windbg expects different version of mscordacwks.dll
在尝试使用windbg调试minidump文件时遇到一个非常奇怪的问题。
我在自己的机器上都尝试过
- 在安装.NET 4.5之后,尝试使用SOS调试.NET 4应用程序时,似乎有一些与您类似的问题报告。参见例如底部:epiwiki.se/tools/windbg/analyze-the-dump-file/和中间部分:wintellect.com/cs/blogs/jrobbins/archive/2012/03/08/
-
Windows调试工具的最新版本所做的第一件事可能是提示您安装.net 4.5
-
您正在使用哪个版本的调试工具?
您如何尝试WinDbg x64的步骤:无法调试故障转储-无法加载数据访问DLL?
您应该
从源计算机复制mscordacwks.dll。
将其重命名为mscordacwks_AMD64_AMD64_4.0.30319.296.dll。
将此dll拖放到WinDbg.exe文件夹中。
重新初始化调试会话(关闭并重新打开WinDbg)。
然后您很可能会收到一条错误消息,说WinDbg需要该版本的.NET 4的SOS,您可以
从源计算机复制sos.dll,并将其保存到C:\\\\\\\\ temp \\\\\\\\ sos.dll。
在WinDbg中,不要调用.loadby sos clr,而应使用.load C:\\\\\\\\ temp \\\\\\\\\\ sos.dll。
这是因为您正在安装了.NET 4.5的计算机上调试.NET 4.0转储。基础调试API在4.0和4.5之间进行了显着更改,因此您无法使用.NET 4.5 SOS.dll调试.NET 4.0转储。我要做的是将.NET 4.0 SOS复制到我的winext目录中,并在调试.NET 4.0转储时显式加载它。