Как использовать расширение WinDbg SOS для отладки процесса с двумя средами выполнения .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 со своего компьютера.

Также я видел сообщение Использование 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

Я использую виндбг 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 для отладки. Как я уже сказал, все будет хорошо, если я удалю серебряный свет со своего компьютера. Когда я проверяю загруженные модули, я обнаруживаю, что загружается coreclr.dll из папки Silver Light. Похоже, что среда выполнения серебряного света будет загружена в процесс, пока он установлен. И серебряный свет устанавливается автоматически, потому что от него зависят некоторые другие приложения.   -  person ken    schedule 07.08.2014