Windbg.exe: Failed to load DLL for data access, 0x80004005

I am trying to debug a 32-bit dump of a process from a process that was running on an x64 machine. I am running the x86 version of windbg on my x64 laptop. I followed the recommendations here , but I still get the following:

0:000> .cordll -ve -u -l CLR DLL status: No load attempts 0:000> !clrstack CLRDLL: C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscordacwks.dll:4.0.30319.17020 f:8 doesn't match desired version 4.0.30319.237 f:8 CLRDLL: Loaded DLL c:\symbols\public\mscordacwks_x86_x86_4.0.30319.237.dll\4DD234A8670000\mscordacwks_x86_x86_4.0.30319.237.dll 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. 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. 

As far as I can tell, mscordacwks_x86_x86_4.0.30319.237.dll has loaded successfully, but I still get the error. What am I missing?

+4
source share
2 answers

I solved the problem using ProcDump to get a 32-bit dump of a 32-bit process running on a 64-bit machine. I can successfully learn this using 32 bit windbg. More information can be found in this blog post .

+3
source

It looks like you have a 32-bit dump file - otherwise the error will look like

CLR DLL status: ERROR: Unable to load DLL mscordacwks_AMD64_x86_2.0.50727.3053.dll, Win32 error 0n87

At least according to the blog post β€œFailed to load DLL with data access, 0x80004005” - OR - What is mscordacwks.dll? on notes from a dark corner blog.

Note the combination of AMD64_x86 and x86_x86 in the error message.

For me, this is always because I do not have the correct version of mscordacwks. It is also possible that windbg cannot find it. See My answer to The problem with debugging a hanging dump in windbg for one method that I used to find / extract the correct version from security patches. To download windbg, I set the image path for windbg to point to the directory in which I saved it.

0
source

All Articles