Предыстория: я новичок в 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
... и получил ответ "Нет ошибки запускаемых отладчиков в '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 ... Я пытаюсь открыть файл дампа в 64-битной версии Windows 7 с 64-битной версией Windbg.
.loadby sos clr
что получуUnable to find module 'clr'
. Я пытаюсь отладить .NET 4 с помощью x64 WinDbgsxe ld clr
остановку, когда CLR будет загружена, а затем вы можете загрузить SOS в этот момент.Команда WinDbg "g" означает [Продолжить]
Поскольку вы открываете файл дампа, нет возможности «продолжить», он содержит только память процесса.
Таким образом, сообщение « Ошибка запускаемых отладчиков в 'g'» логично в вашем случае, поскольку процесс не запущен .
Для загрузки правильной версии SOS используйте следующую команду в зависимости от версии .NET.
.NET 4 и выше .loadот sos
.NET 3.5 и 2.loadот sos mscorwks
.NET 1.0 и 1.1 .load clr10 \ sos
источник
Приведенные выше ответы нуждаются в улучшении, поскольку со временем стало легче обрабатывать sos-загрузку.
У ДЖОНА РОББИНСА есть хорошая статья об этом. Посмотрите, что серверы символов Microsoft настроены в пути к файлу символов, и запустите! Анализируйте -v в приглашении windbg, это поможет загрузить соответствующие файлы sos. Чтобы проверить, запустите .chain в командной строке, и вы увидите загруженную dll.
источник
Просто столкнулся с аналогичной проблемой при загрузке SOS и получал «указанный модуль не найден». Придумал другое решение, поэтому, если решения здесь вам не помогают, попробуйте следующее:
.loadby sos clr - указанный модуль не найден
источник