【问题标题】:WinDbg x86 .NET 4 application on Windows 7 x64: Failed to load data access DLL, 0x80004005Windows 7 x64 上的 WinDbg x86 .NET 4 应用程序:无法加载数据访问 DLL,0x80004005
【发布时间】:2012-05-15 09:24:32
【问题描述】:

我正在尝试在 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 点。您是否安装了 .NET 4.5?
  • 另外,假设你有windbg >= v6.2.14?

标签: .net windbg


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      • 2011-06-09
      相关资源
      最近更新 更多