Проблема отладки завис-дамп в windbg - PullRequest
1 голос
/ 21 сентября 2011

После загрузки sosex я получаю следующую ошибку.Есть идеи?Дамп зависания от 32-битной машины, мой 64-битный.Нужно ли что-то устанавливать?

!clrstack

CLR DLL status: ERROR: Unable to load DLL mscordacwks_x86_x86_2.0.50727.3623.dll, Win32 error 0n2

1 Ответ

4 голосов
/ 04 октября 2011

Проблема в том, что версия mscordacwks на вашем компьютере отличается от версии из аварийного дампа. Это не проблема bitnesss - даже если ваша машина 64-битная, у вас установлен 32-битный .NET. Мой находится в C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727.

Копия, которая у вас есть, не будет иметь такого длинного имени, она будет называться mscordacwks.dll. Когда отладчик видит, что ваша «активная» копия отличается, он будет искать копию с длинным именем (избегая адской длл), и это также скажет вам, какую версию вам нужно получить. После того, как я получаю правильный файл mscordacwks.dll (например, с оригинального компьютера), я копирую его в каталог фреймворка и называю его, как показано в сообщении об ошибке. Я также установил путь к изображению windbg, чтобы включить каталог фреймворка.

sos должен использовать сборку фреймворка mscordacwks для понимания структур данных в памяти. Это все объясняется в сообщении блога «Не удалось загрузить DLL доступа к данным, 0x80004005» - ИЛИ - Что такое mscordacwks.dll? в заметках из темного углового блога.

В Интернете вы найдете множество вопросов о том, как получить различные версии этой библиотеки. Предполагая, что вы не можете получить его с компьютера, который создал аварийный дамп, и он не загружается с сервера символов Microsoft, в прошлом я занимался поиском mscordacwks на microsoft.com и нужной мне версией ( например, 2.0.50727.3623). Обычно это патч безопасности, который вы можете скачать.

Если у вас нет подходящей системы для установки, мне повезло, открыв установочную версию с 7zip. Я нашел файл mscordacwks в кабине, которая была в файле исправления (MSP-файл), который был в исполняемом файле установки исправления безопасности. Каждый из них можно открыть с помощью 7zip.

Когда вы нажимаете CAB-файл, иногда лучше использовать expand.exe, поскольку он может распаковать файлы, которые 7zip (v4.65) не делает. Если вы открываете CAB с 7zip, который имеет _manifest_.cix.xml, используйте вместо этого расширение, поскольку оно использует манифест для извлечения, распаковки и переименования содержимого. 7zip (делая простое извлечение для ...) оставляет его необработанным с кучей файлов, названных численно, буквально 1, 2 и т. Д. Эти файлы могут быть сжаты. Как вы знаете, если вы откроете их (например, с помощью SciTE), они начнут с подписи, такой как PA30 (она будет соответствовать атрибуту «type» источника из манифеста).

...