使用DebugDiag调试转储文件时出错

时间:2014-05-29 09:41:32

标签: .net dump debugdiag

这是我第一次使用.dmp文件调试或执行任何操作。我使用的是Debugdiag。当我运行Analysis时,我收到此错误 -

Analysis results may be incomplete because an error occurred while initializing the CLR diagnostic runtime for w3wp.DMP.

Dump File:  w3wp.DMP

Type:  DebugDiag.DotNet.DacNotFoundException

Message:  CLR is loaded in the target, but the correct dac file cannot be found. DacFileName: mscordacwks_Amd64_Amd64_10.0.30319.01.dll. DacLocation: 

它说要解决这个问题,我必须这样做:

To fix this problem, you can copy mscordacwks.dll from the server where the dump was taken and rename it to mscordacwks_Amd64_Amd64_10.0.30319.01.dll and add the path of the folder to the Symbol server path by going to Tools-> Options and Settings

我做到了,现在我收到以下错误:

转储文件:w3wp.DMP

键入:Microsoft.Diagnostics.Runtime.ClrDiagnosticsException

消息:无法加载dac:D:\ Dumps \ mscordacwks_Amd64_Amd64_10.0.30319.01.dll

Stack Trace:

Microsoft.Diagnostics.Runtime.DacLibrary..ctor(DataTargetImpl dataTarget, String dacDll)

Microsoft.Diagnostics.Runtime.DataTargetImpl.CreateRuntime(String dacFilename)

DebugDiag.DotNet.NetDbgObj.CreateRuntimeAndGetHeap(String dumpPath, IDbgObj3 legacyDebugger, String symbolPath, Boolean throwOnBitnessMismatch, Boolean loadClrHeap)

HResult: UnknownError

我曾尝试过几个链接,一个是this。什么都没得到。如何解决此问题并查看转储文件的整个分析?

1 个答案:

答案 0 :(得分:3)

如果您在与转储来源不同的计算机上进行分析,则应该只能得到此信息。原因很简单,正在使用不同版本的mscordacwks.dll。

要解决此问题,请将mscordacwks.dll从源计算机复制到分析计算机的临时目录( NOT %WINDIR%\ Microsoft.net目录)。

将复制的mscordacwks.dll重命名为mscordacwks_Amd64_Amd64_10.0.30319.01.dll。

将临时目录添加到debugdiag分析应用程序中的符号搜索路径。

重新运行您的分析。