Чтение файлов дампа.NET 4.0 в WinDBG

Я знаком с парадигмой WinDBG. Рассматривал много файлов дампа, используя версию WinDBG x64. По большей части файлы дампа были приложениями.NET 2.0 и psscor2.dll. Текущая версия WinDBG, которую я использую - 6.12.0002.633. Недавно я пытался открыть файлы дампа IIS x64 dump, сгенерированные из пула приложений.NET 4.0, с помощью psscor4.dll. Любая команда, которую я запускаю, возвращает "Не удалось запросить информацию"

  1. Я имею mscordacwks.dll от c:\Windows\Microsoft.NET\Framework64\v4.0.30319 на сервере
  2. Переименован в mscordackwks_AMD64_AMD64_4.0.30319.xxxx.dll. хххх соответствует скомпилированной версии в файле
  3. Откройте WinDBG, откройте файл дампа и добавьте путь к вышеупомянутой DLL в exepath
  4. Запустите базовую команду! Все проверки в порядке, и я получаю кучу GC, которая не инициализирована, поэтому режим GC еще не определен. На этапе планирования сборки мусора
  5. Затем я набираю! Threads и получаю, Не удалось запросить ThreadStore
  6. Далее! Threadpool и я получаю, Не удалось запросить информацию ThreadpoolMgr

Я выполнил некоторый простой поиск в Google с этими сообщениями об ошибках, и все они указывают на отсутствие правильного mscordacwks.dll или открытие файлов x86 в файлах WinDBG x64 или x64 в WinDBG x86. Не звучит актуально для меня

Любая помощь / руководство очень ценится

2 ответа

Решение

Номер сборки 4.0.30319.17929 - это номер сборки.NET 4.5. PSSCOR4 не будет отлаживать 4.5. Вам необходимо использовать SOS 4.0 и / или SOSEX, который работает для всех версий.NET 2.0-4.5.

В прошлом я обнаружил, что для отладки.Net требуется 3 dll.

sos.dll mscorwks.dll mscordacwks.dll

вот как я обычно получаю эти dll http://sjbdeveloper.blogspot.com.au/, хотя это звучит так, как будто вы используете серверное приложение, что означает, что вы можете просто взять их из своей рабочей коробки, предполагая, что у вас есть доступ к нему, или постановочный ящик, если вы этого не сделаете.

Другие вопросы по тегам