关于.net:Windbg期望使用mscordacwks.dll的不同版本

Windbg expects different version of mscordacwks.dll

在尝试使用windbg调试minidump文件时遇到一个非常奇怪的问题。
我在自己的机器上都尝试过


您如何尝试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转储时显式加载它。