2011-09-15 4 views
2

У меня есть приложение WPF, которое висит на одной машине пользователя. Другие пользователи не затронуты. Приложение зависает как изначально из среды разработки, так и под управлением отладки. Проблема может быть воспроизведена надежно - она ​​просто зависает, что пытается сделать пользователь. Запуск под debug не дает никаких подсказок, исключение не генерируется, приложение просто перестает отвечать.Как отлаживать висящее приложение WPF?

Какие у меня варианты для отладки? Существуют ли какие-либо внешние инструменты - например, например, набор sysinternals - что может помочь? Существуют ли какие-либо приемы отладки Visual Studio или советы, которые могут предоставить немного больше информации?

+3

Во время работы под отладкой вы можете нажать кнопку «пауза» отладки, пока она висела, чтобы увидеть, какая команда не отвечает? – Jon

+0

Пробовал это, и он просто остановился под главной точкой входа 'App.Run()' – MalcomTucker

ответ

2

Да, вы можете использовать mdbg.exe для присоединения к висящему процессу (PID), а когда вы там, нажмите w, чтобы увидеть трассировку стека.

кстати. зависание может быть вызвано поврежденным кешем шрифта, поэтому перед попыткой mdbg попытаться найти инструкцию по очистке кеша шрифтов WPF.

1

Поскольку это довольно общее описание только общие указатели:

  • хит «пауза» в отладчик и посмотреть, где он висит
  • патч системы + драйверы до последней «стабильного уровня»
  • проверка любых третьих сторон сборки вы используете
    , возможно, есть некоторые причуды относительно версии и/или конфигурации и/или зависимости
  • использование sysinternal processmon для проверьте, что делает приложение (к каким файлам обращаются и т. д.)
  • проверить сетевое подключение и конфигурацию (прокси, DNS, брандмауэр и т. д.), если ваше приложение использует что-либо (например, сетевой ресурс или доступ к базе данных или доступ к Интернету и т. д.)
  • проверки оперативной память (возможно, машина пейджинговая как сумасшедшие ...)
  • , если ваше приложение многопоточное может быть исключением «таится» => попробуйте добавить глобальные обработчик, чтобы получить ключ (см here)
  • шрифта проблемы могут быть еще одной проблемой для учета ... см. here
  • проверить наличие антивируса и т. д. => иногда это может вызвать странное поведение

все, что вышло выше, могло бы дать вам понять, что происходит.

0

Проверьте аппаратное ускорение машины. Помните, что WPF использует прямой аппаратный доступ для рендеринга, когда он доступен. Вы можете попытаться уменьшить ускорение, обновить видеодрайверы и т. Д.

В какой операционной системе это работает? Если Windows 7 - включен Aero?

Смежные вопросы