Как да използвам разширението WinDbg SOS за отстраняване на грешки в процес с 2 .NET изпълнения?

Отстранявам грешки в процес с .NET 2 и Silverlight 5.1 едновременно с помощта на WinDbg SOS. Получавам следната грешка, ако изпълня някоя 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 в дъмп с .NET 2 (mscorwks) и .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. Благодаря ви за всяко предложение.


person ken    schedule 31.07.2014    source източник
comment
Можете ли да опитате да коригирате символите (.symfix X:\symbols) и да използвате по-новата версия 6.3.9600 на WinDbg ?   -  person Thomas Weller    schedule 02.08.2014
comment
Откъде взехте информацията, че се зарежда среда за изпълнение на Silverlight? Аз лично смятам, че просто сте заредили грешния SOS. Моля, прегледайте blogs.msdn.com/b/dougste/archive/2009/02/18/   -  person Lex Li    schedule 02.08.2014
comment
Приложението, което отстранявам, със сигурност е изградено на .NET 2. Използвам SOS.dll за .NET 2 за отстраняване на грешки. Както казах, ще работи добре, ако деинсталирам silver light от моя компютър. Когато проверявам заредените модули, откривам, че е зареден coreclr.dll от папката silver light. Изглежда, че времето за изпълнение на сребърната светлина ще бъде заредено в процеса, докато е инсталирано. И сребърната светлина се инсталира автоматично, защото някои други приложения зависят от нея.   -  person ken    schedule 07.08.2014