windbg问题:Failed to load data access DLL, 0x80004005

1.问题

在使用windbg分析dump文件时,有时候会遇到这个问题“Failed to load data access DLL, 0x80004005“,如下图所示:windbg问题:Failed to load data access DLL, 0x80004005_第1张图片

2.问题分析

最根本原因是:SOS.dll调试器扩展未能找到匹配项mscordacwks.dll。

3.原因

1:没有设置symbol path,如下图所示:
windbg问题:Failed to load data access DLL, 0x80004005_第2张图片
2:设置了symbol path ,但是mscordacwks.dll版本不正确。

4.解决方案

4.1:没有设置symbol path

1:这个很简单,只要配置symbol path即可。
windbg问题:Failed to load data access DLL, 0x80004005_第3张图片
2:需要注意的点:我的电脑,symbol path这个路径是在 E:\symbol-cache下(可以灵活设置)
windbg问题:Failed to load data access DLL, 0x80004005_第4张图片

4.2:mscordacwks.dll版本不匹配

下面的例子是64位应用程序的解决方案,32位应用程序的解决思路是一样的。
第一步:从生成dump文件的服务器获取mscordacwks.dll。
路径: C:\Windows\Microsoft.NET\Framework64\v4.0.30319
windbg问题:Failed to load data access DLL, 0x80004005_第5张图片
第二步:调整mscordacwks.dll名称,改成如下形式:mscordacwks_AAA_AAA_xxxx.dll。
1: AAA代表x86 or AMD64。
2: xxxx代表mscordacwks版本号,如下图所示。
windbg问题:Failed to load data access DLL, 0x80004005_第6张图片
3:调整后的结果是这样:mscordacwks_AMD64_AMD64_4.0.30319.17929.dll。

第三步:将mscordacwks_AMD64_AMD64_4.0.30319.17929.dll复制到symbol path路径下。
第四步:reload或从起windbg都可以。

5.总结

以上就是处理Failed to load data access DLL问题的解决思路。若还无法解决请留言。

你可能感兴趣的:(工具)