Начну с того, что я впервые что-то сделал с WinDbg, так что извините за мои глупые ошибки, если в этом проблема. Мой сайт использует много памяти, и после чтения блогов и просмотра видео от Тесс Фернандес я пытаюсь использовать WinDBG для анализа файла дампа.
Настройка: Мой веб-сервер - это 64-битная машина Windows 2008, на которой мой веб-сайт asp.net 2.0 работает в режиме 32-битной совместимости. Я установил переменную окружения, чтобы получить все символы, поэтому я не получаю ошибки при загрузке WinDbg
Я использую следующие команды в WinDbg:
.load C:\Windows\Microsoft.NET\Framework64\v2.0.50727\sos.dll
.load C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
!eeheap -gc
и получаю следующую ошибку:
Структуры данных сборщика мусора
не находятся в действительном состоянии для
ВТП. Это либо в "плане"
фаза, "где объекты перемещаются
вокруг, или мы находимся на
инициализация или отключение gc
куча. Команды, связанные с отображением,
нахождение или перемещение объектов, а также
поскольку сегменты кучи gc могут не работать
должным образом. ! dumpheap и! verifyheap
может неправильно жаловаться на кучу
ошибки согласованности. Количество ГК
Кучи: 1 Ошибка при запросе деталей
Я прочитал, что это может быть вызвано несовпадением версий, и я думаю, что это может быть проблемой. Чтобы продвинуться так далеко, мне пришлось создать путь
C: \ Windows \ Symbols \ mscordacwks_AMD64_x86_2.0.50727.4016.dll \ 49CC5B00590000 \ mscordacwks_AMD64_x86_2.0.50727.4016.dll
поэтому библиотеки загружаются, когда я вызываю! Eeheap -gc (в противном случае появляются другие ошибки). Проблема в том, что я взял этот mscordacwks.dll из обычной папки .NET, а не Framework64. Я не знаю, является ли это причиной проблемы, но я бился головой о кирпичную стену и не знаю, что еще делать, поэтому я был бы признателен за помощь.
Большое спасибо.