Windows 7 x64上的WinDbg x86 .NET 4应用程序:无法加载数据访问DLL,0x80004005

时间:2012-05-15 09:24:32

标签: .net windbg

我正在尝试使用Windows 7 x64上的WinDbg调试.NET 4 32位(在项目选项中显式设置)应用程序,以下是步骤:

  • 启动我的应用程序(让它成为foo.exe)
  • 在windbg.exe上启动x86版本
  • 附加到foo.exe
  • .loadby sos clr
  • !dumpheap -stat

之后我得到了这个:

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
            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 the same architecture as the dump file.
                For example, an IA64 dump file must be debugged on an IA64
                machine.

有什么问题? 我搜索了很多..这个问题看起来与内存转储有关:Failed to load data access DLL, 0x80004005 但我正在尝试调试正在运行的应用程序。

2 个答案:

答案 0 :(得分:3)

DAC是SOS用于与托管运行时通信的层。如果由于某种原因无法找到正确的版本(或者如果您的调试器已过时),您将看到此消息。如果您执行.cordll -ve -u -l,则会获得有关其尝试加载的版本的更多信息,您应该可以从那里进行故障排除。

答案 1 :(得分:2)

最后我使用Visual Studio立即窗口而不是WinDbg来调用SOS函数(dumpheap等):http://msdn.microsoft.com/en-us/library/bb190764.aspx