如何使用WinDbg SOS扩展来调试具有2个.NET运行时的进程?

时间:2014-07-31 15:19:38

标签: .net windbg sos

我使用WinDbg SOS同时使用.NET 2和Silverlight 5.1运行时调试进程。如果我运行任何SOS命令,请收到以下错误:

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.

该过程由.NET 2构建,我确信我使用的是正确版本的SOS。只是不知道为什么ilverlight被加载到这个过程中。如果我完全从计算机上卸载Silverlight,它将运行良好。

我也看到帖子Using SOS in a dump with .NET 2 (mscorwks) and .NET 4 (clr)。当我尝试.cordll -ve -u -l时,我得到以下结果:

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

当我尝试.cordll -ve -se -u -I 6d760000 -N时,其中6d760000是.NET 2 mscorwks.dll的起始地址:

0:005>  .cordll -ve  -se -u -I 6d760000 -N
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\Windows\system32\kernel32.dll - 
NOTE: This code is not supported and may not work.
Do not report any problems you have.
CLR DLL status: No load attempts
  Test new CLR interfaces

我正在使用Windbg 6.12。谢谢你的任何建议。

0 个答案:

没有答案