Диагностический инструмент отладки, WinDBG и Visual Studio не удается открыть мой дамп

Моя установка выглядит следующим образом:

  1. 32-битный сайт.net 4.0, работающий на 64-битном сервере Windows 2003
  2. У меня есть настройка Debug Diagnostic 1.2 для мониторинга сбоев
  3. У меня еще нет автоматического дампа, но я пытаюсь проанализировать ручной дамп.
  4. У меня есть 32-битная машина с Windows 7, на которой установлена ​​Visual Studio 2010, которую я пытаюсь использовать для анализа этих файлов дампа.

Я пробовал многочисленные способы открыть файл дампа, который он генерирует, но все терпит неудачу.

Вот что я попробовал:

1. DebugDiag Win 2003

Попробуйте использовать вкладку "Анализ" через "Диагностика отладки" непосредственно на сервере win 2003, на котором размещен веб-сайт. Я получаю следующую ошибку

.NET runtime was loaded in the progress but managed analysis was not done on this dump file because the managed debugger extension commands failed to execue with the below error

CLRDLL: CLRDLL load disabled

CLRDLL: Unable to find mscordacwks_AMD64_AMD64_4.0.30319.1022.sll by mscorwks search
CLRDLL: Unable to find mscordacwks_AMD64_AMD64_4.0.30319.1022.sll on the path
CLRDLL: ERROR: Unable to find mscordacwks_AMD64_AMD64_4.0.30319.1022.dll , win32 error 0n2

2. DebugDiag Win 7

Попробуйте проанализировать дамп на 32-битной машине Windows 7, я получаю следующую ошибку:

DebugDiag Analysis cannot be performed against a 64-but dump file from a 32-bit analysis machine

3. WinDbg на Win 7 x86

Попробуйте открыть дамп с помощью WinDbg на 32-битной машине вдов:

0:000> !clrstack
Failed to load data access DLL, 0x80004005
Verify that 1) you have a recent build of the debugger (6.2.14 or newer)
            2) the file mscordacwks.dll that matches your version of mscorwks.dll is 
                in the version directory
            3) or, if you are debugging a dump file, verify that the file 
                mscordacwks___.dll is on your symbol path.
            4) you are debugging on the same architecture as the dump file.
                For example, an IA64 dump file must be debugged on an IA64
                machine.

You can also run the debugger command .cordll to control the debugger's
load of mscordacwks.dll.  .cordll -ve -u -l will do a verbose reload.
If that succeeds, the SOS command should work on retry.

If you are debugging a minidump, you need to make sure that your executable
path is pointing to mscorwks.dll as well.

Попробуйте запустить следующие команды в WinDBG, чтобы зарегистрировать mscordwks и переключиться на 32-битную версию, но все равно не ходите:

! [введите описание изображения здесь] [2]

.loadby sos mscorkks

.load wow64exts

!sw

.cordll -ve -u -l

4. Visual Studio 2010

Попробуйте использовать Visual Studio 2010 для отладки этого файла дампа, но при этом не получается сказать, что невозможно отобразить управляемый код или что-то еще.


Я уже потратил 10 дней на это и чувствую себя очень разочарованным и беспомощным.

Кто-нибудь, кто мог бы пролить свет на то, что здесь не так, пожалуйста?

Спасибо заранее.

1 ответ

Прежде всего, у вас есть 64-битный дамп. Мы видим это, потому что DebugDiag пытается загрузить 64-битную версию mscordacwks. Далее вы говорите, что у вас есть 32-битное веб-приложение. Это уже плохая ситуация для.NET. Вы не сможете проанализировать дамп. Возможно, вы взяли дамп с помощью диспетчера задач, который по умолчанию сгенерирует этот вид дампов.

Чтобы убедиться, что это действительно так, запустите следующую команду в WinDbg:

lm m wow64

Если в этом списке указан модуль Wow64, то это плохая ситуация. Если это не дает никакого результата, у вас есть 64-битный дамп 64-битного приложения, что намного лучше. Однако вам потребуется 64-битная версия WinDbg для ее анализа, иначе вы не сможете загрузить 64-битное расширение SOS. Также вам нужна 64-битная версия DebugDiag для ее анализа (см. Ваши сообщения об ошибках).

WinDbg должен загрузить правильную версию SOS и mscordacwks, если вы наберете !analyze -v, Также DebugDiag попытается скачать его. Если это не сработает, получите необходимые файлы с исходного компьютера, например, с помощью Mscordacwkscollector.

Некоторые другие заметки:

  1. Между тем, есть DebugDiag 2.1, который должен дать лучшие результаты.
  2. Обязательно наберите команды правильно: .loadby sos mscorkks не работает. это .loadby sos mscorwks и даже .loadby sos clr для.NET 4
  3. Вы загрузили картинку, но удалили соответствующую ссылку. Может быть, вы хотите отредактировать свое сообщение и снова загрузить картинку. Используйте предварительный просмотр, чтобы увидеть, есть ли он там.
Другие вопросы по тегам