Windbg分析托管代码dump文件没有找到相应版本的mscordacwks.dll

来源:互联网 发布:nginx编写第三方模块 编辑:程序博客网 时间:2024/06/04 19:23

  用Windbg 分析一个托管代码的dump文件:

 

0:013> .loadby sos mscorwks
0:013> !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_<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 mscorwks.dll as well.
0:013> .cordll
CLR DLL status: ERROR: Unable to load DLL mscordacwks_x86_x86_2.0.50727.3607.dll, Win32 error 0n2

 

从上面提示信息可以看出,windbg没有找到对应的版本mscordacwks.dll, 检查一下该文件本机的版本号2.0.50727.4927。碰到这种问题时,最好从产生这个dump文件的计算机上复制mscordacwks.dll到windbg目录下,重命名为mscordacwks_x86_x86_2.0.50727.3607.dll。然后执行如下命令,后面就可以正常分析。


0:013> .cordll -ve -u -l
CLR DLL status: No load attempts