Вопрос

Фон: Я новичок в Windbg и пытаюсь заставить его бежать в первый раз. Я хочу изучить дамп памяти, которую я взял из строя сайта ASP.NET 4, размещенного в IIS 7 на Windows Server 2008 (x86) и загружается на мой локальный компьютер.

Я установил Инструменты отладки И запустил WINDBG впервые, открывая свалку свалки. я пошел в Файл |. Символ файла пути и установить путь к *srv*c:\symbols*http://msdl.microsoft.com/download/symbols* и ждал всех символов для загрузки.

При попытке загрузить SOS, я столкнулся с проблемами. Во-первых, я попробовал следующую команду ...

.loadby sos mscorwks

... и получил ответ Unable to find module 'mscorwks'.

После прокована в Интернете я пытался загрузить MSCorwks, выполнив следующую команду ...

sxe ld mscorwks.dll
g

... и получил ответ «Нет ошибки Runnable отладки в« G »

Я копировал sos.dll (из c: windows microsoft.net framework v4.0.30319) в каталог windbg, затем попробовал ...

.load sos

... и получил ошибку ...

The call to LoadLibrary(sos) failed, Win32 error 0n193
    "%1 is not a valid Win32 application."
Please check your debugger configuration and/or network access.

Я не совсем уверен, как продолжить. Я просто хочу загрузить SOS и копать вокруг этого файла дампа. Любая помощь будет очень ценится.

FYI ... Я пытаюсь открыть файл dump на 64-разрядной версии Windows 7 с 64-битной версией WINDBG.

Это было полезно?

Решение

DLL Runtime CLR был переименован в clr.dll с .NET 4. Итак, чтобы загрузить правильную версию SOS, вам нужно настроить .loadby команда. Т.е.

.loadby sos clr

Кроме того, если вы на 64 бита, вы должны установить 32 битную версию Инструменты отладки для Windows Также для отладки 32-битных приложений. Они устанавливают бок о бок, поэтому нет проблем с использованием 32-битной, так и 64-битной версии на одной машине.

Я бы совет против копирования sos.dll. SOS необходимо соответствовать точной версии рамки, так что до тех пор, пока вы загружаете его из кадравственного каталога, используя .loadby, Вы все набор.

Другие советы

Команда Windbg 'G' означает [Продолжить

Поскольку вы открываете дамп-файл, нет возможности «продолжить», он содержит только память процесса.

Так что сообщение «нет родительский Ошибка отладки в «G» »логична в вашем случае, поскольку процесс не Бег.

Что касается загрузки правильной версии SOS, используйте следующую команду в зависимости от версии .NET.

.Net 4 и выше .alkby sos.

.Net 3.5 и 2 .alghy sos mscorwks.

.Net 1.0 и 1.1 . Нажмите CLR10 SOS

Просто наткнулся на подобную проблему, загружающую SOS и получал «Указанный модуль не может быть найден». Придумал другое решение, поэтому, если решения здесь не помогут вам, попробуйте это:

.Loadby SOS CLR - указанный модуль не может быть найден

Ответы выше необходимости улучшения, поскольку в течение времени все проще обрабатывать SOS загрузку.

Джон Роббинс приятно статья Вокруг него см. Сервера символов Microsoft настроены в пути файла символов и запущены! Analyze -V на подсказке WinDBG, это сделает трюк, который он будет загружать соответствующие файлы SOS. Чтобы проверить Run .Chain в подсказке, и вы увидите загруженный DLL.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top