DebugDiag如何在没有匹配的调试dll的情况下分析转储文件

时间:2014-10-17 14:01:09

标签: .net windbg sos clr4.0 debugdiag

尝试分析转储文件时出现以下错误。

    0:000> !threads 
    The version of SOS does not match the version of CLR you are debugging.  
Please load the matching version of SOS for the version of CLR you are debugging.
CLR Version: 4.0.30319.1022 
SOS Version: 4.0.30319.34011 
Failed to load data access DLL, 0x80004005 Verify that 
1) you have a recent build of the debugger (6.2.14 or newer)
2) the file mscordacwks.dll that matches your version of clr.dll is 
   in the version directory or on the symbol path
3) or, if you are debugging a dump file, verify that the file 
   mscordacwks_<arch>_<arch>_<version>.dll is on your symbol path.
4) you are debugging on supported cross platform architecture as 
   the dump file. For example, an ARM dump file must be debugged
   on an X86 or an ARM machine; an AMD64 dump file must be
   debugged on an AMD64 machine.

You can also run the debugger command .cordll to control the debugger's load of mscordacwks.dll.  .cordll -ve -u -l will do a verbose reload. If that succeeds, the SOS command should work on retry.

If you are debugging a minidump, you need to make sure that your executable path is pointing to clr.dll as well.

我正在使用正确版本的WinDbg。我也知道我机器上的sos版本与捕获转储文件的机器上的版本不同。所以我正在获取正确的版本,看看是否能解决问题。但是我的问题是当我通过DebugDiag Analyzer打开这个转储文件时,它可以读取转储文件并为我提供正确的结果。我很好奇当我的机器上没有sos和mscordacwks的匹配版本时,DebugDiag能够分析这个转储文件吗?

1 个答案:

答案 0 :(得分:1)

Debugdiag可能正在使用psscor4或类似的东西。通常在4.x框架中我们不需要匹配的版本,我不记得版本,但如果你使用旧的windbg,那东西就像魅力一样。 Sosex和psscor4也将在这种情况下提供帮助。