windbg调试64位程序

前一段碰到这样一个问题:

 

When debugging a Managed Crash dump file,  windbg shows "Failed to
load data access DLL".
but when execute command ".cordll", shows the mscordacwks.dll was
already loaded.

newbie questions:
1.  "data access DLL" means mscordacwks.dll?
2.  What should i do now to continue this debugging?

Thanks in advance.

=================================
0:000> .load sos
0:000> !clrstack
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
mscorwks.dll is
                in the version directory
            3) or, if you are debugging a dump file, verify that the
file
                mscordacwks___.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 mscorwks.dll as well.
0:000> .cordll -ve
CLR DLL status: Loaded DLL C:/Windows/Microsoft.NET/Framework
/v2.0.50727/mscordacwks.dll
0:000> .cordll -ve -l -u
CLR DLL status: No load attempts
0:000> !clrstack
CLRDLL: Loaded DLL C:/Windows/Microsoft.NET/Framework
/v2.0.50727/mscordacwks.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
mscorwks.dll is
                in the version directory
            3) or, if you are debugging a dump file, verify that the
file
                mscordacwks___.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 mscorwks.dll as well.
0:000> .cordll
CLR DLL status: Loaded DLL C:/Windows/Microsoft.NET/Framework
/v2.0.50727/mscordacwks.dll
=================================

 

 

 

后来找到了原因, 解决方法如下:

1.
    .load wow64exts

2.
     !sw

3.   do whatever want!

你可能感兴趣的:(debugging,dll,command,file,access,build)