WindBG не могу загрузить SOS CLR - PullRequest
4 голосов
/ 04 сентября 2011

Я не уверен, что windbg - правильный инструмент, но я сейчас пытаюсь

У моего приложения asp.net, похоже, есть утечка памяти, она увеличивается примерно на 3 МБ почти каждый раз, когда страница загружается (затем возвращается обратно ...)

Я хочу прочитать всю память процесса и посмотреть, что именно хранится, что не нужно.

Итак, я запускаю windbg, присоединяюсь к процессу webserver40.exe

тогда я пытаюсь

.loadby sos clr

и я получаю

Сбой вызова LoadLibrary (C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ sos), ошибка Win32 0n193 "% 1 не является допустимым приложением Win32."

Пожалуйста, проверьте конфигурацию отладчика и / или доступ к сети.

Кажется, у меня есть этот sos.dll в Framework AND Framework64

Я пробовал оба, используя

.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\sos

но ничего не загружается

Я не понимаю, почему он ищет vaild 32-битное приложение. я на 64-битном ПК с 64-битными окнами.

Как я могу получить эту вещь SOS для загрузки?

Также, когда я начинаю, я получаю это предупреждение

ВНИМАНИЕ: Процесс 7240 не подключен как отладчик Процесс может быть проверен, но события отладки не будут получены

Я также пытался loadby sos mscorwks, это не сработало, но я понимаю, что было прекращено. Я в asp.net 4

Я также где-то читал, что код должен быть остановлен в отладке перед загрузкой SOS, который просто зависает VS 2010.

Большое спасибо.

Опять же, если есть другой инструмент, который мог бы помочь мне лучше, я весь в ушах: -)

1 Ответ

5 голосов
/ 04 сентября 2011

WebDev.WebServer40.exe - 32-разрядный исполняемый файл. Для отладки нужно использовать 32-битный WinDbg. Visual Studio, а также сервер Callipso по-прежнему работают в 32-битном режиме.

На ваш другой вопрос. Да, WinDbg - отличный инструмент для исследования утечек памяти в управляемом коде. Этот блог поможет вам начать. Однако в вашем случае я бы не был уверен, что у вас утечка памяти.

  • Вы говорите, что память со временем падает. Это означает, что это не утечка памяти, потому что утечка памяти никогда не освобождается.
  • Не тратьте свое время на исследование проблем с памятью в Callipso. Между IIS и Callipso существует множество различий, которые делают ваши выводы неприменимыми в производственной среде. Даже если вы обнаружите, что Callipso действительно утечка, это не значит, что IIS будет.
...