Невозможно загрузить SOS в WinDbg - PullRequest
129 голосов
/ 07 декабря 2010

Справочная информация: я новичок в WinDbg и пытаюсь запустить его в первый раз.Я хочу изучить дамп памяти, который я взял с работающего сайта ASP.NET 4, размещенного в IIS 7 на Windows Server 2008 (x86) и загруженного на мой локальный компьютер.1004 * и впервые запустил 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

... и получил ответ «Нет ошибки запуска отладчиков в« 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 и копаться в этом файле дампа.Любая помощь будет принята с благодарностью.

Кстати ... Я пытаюсь открыть файл дампа в 64-разрядной версии Windows 7 с 64-разрядной версией Windbg.

Ответы [ 4 ]

200 голосов
/ 07 декабря 2010

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

.loadby sos clr

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

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

16 голосов
/ 29 июля 2014

Команда WinDbg 'g' означает [Продолжить]

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

Таким образом, сообщение «Нет runnable ошибка отладки в« g »» является логичным в вашем случае, поскольку процесс не выполняется .

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

.NET 4 и выше .loadby sos

.NET 3.5 и 2 .loadby sos mscorwks

.NET 1.0 и 1.1 .load clr10 \ sos

0 голосов
/ 10 мая 2017

Ответы, приведенные выше, нуждаются в улучшении, поскольку с течением времени стало проще справляться с загрузкой sos.

У ДЖОНА РОББИНСА есть хорошая статья , смотрите, что серверы символов Microsoft сконфигурированы по пути к символьному файлу и запустите! Анализ -v в приглашении windbg, это сделает трюк при загрузке соответствующих файлов sos. Для проверки запустите .chain в командной строке, и вы увидите загруженную DLL.

0 голосов
/ 10 августа 2016

Только что столкнулся с подобной проблемой при загрузке SOS и получал "указанный модуль не найден".Придумал другое решение, поэтому, если решения здесь не помогут, попробуйте это:

.loadby sos clr - указанный модуль не найден

...