Как включить диалоговое окно Window Error Reporting (WER). Общий вопрос новичка

После первоначальной настройки WinQual и WER я намеренно вставил сбой в сборку релиза, ожидая \ надеясь получить диалог WER, но вместо этого по-прежнему получая диалог, содержащий "ошибка времени выполнения! Приложение запросило завершение времени выполнения в необычной форме. путь...".

Кажется, что все работает правильно в отношении установки WinQual (вместе со всеми поддерживающими сервером символов, исходным сервером, учетной записью WinQual, отправленными файлами сопоставления и проверкой их наличия моей учетной записи WinQual). Теперь я хочу убедиться, что файлы дампа созданы, отправлены в WinQual и я могу получить их для отладки.

Я проверил, что отчеты об ошибках моего компьютера (XP Pro SP3) включены (системные свойства - отчеты об ошибках). Я подумал, что самая сложная часть - это настроить все выше, не заставляя программу фактически показывать диалог WER. Есть ли какая-то модификация для exe или ПК?

3 ответа

Если вы используете приложение WinForms, в его цикле событий есть обработчик перехвата, который открывает диалоговое окно и предотвращает включение Windows Error Reporting (WER).

Этот вызов предотвращает это. (Http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/176b7f8c-3efb-4e6f-8deb-c685c62629db/)

Волшебная линия, чтобы исправить:

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);

Приятно знать, что я не могу быть (полностью) сумасшедшим. Вы правы, что внешние проблемы вызывали проблемы для диалога WER.

Я изменил сбой на приведенный выше код, на случай, если моя версия была слишком жестокой, и запустил приложение на трех машинах, и оказалось, что наличие отладки Visual Studio и / или своевременной отладки на XP и Win7 было влияет на диалог WER. Для тех, кто заинтересован, это то, что я видел:

  • XP с Visual Studio. Попросили выбрать отладчик, и если я выбрал Нет, программа вышла без диалога WER.
  • XP без Visual Studio. Отображается диалог WER и отправляется отчет об ошибке (да).
  • Win7 с Visual Studio. Не врезался вообще.
  • Win7 без Visual Studio. Я еще не проверял, но подозреваю, что он будет вести себя правильно.

Как вы и предполагали, комбинация кода сбоя и непредставительной среды тестирования мешали моему тесту.

Спасибо!

В приложении не должно быть ничего, что нужно сделать, чтобы оно заработало. Я подозреваю, что вам каким-то образом удалось потерпеть крах каким-то странным образом, который не очень хорошо работает с WER. Попробуйте добавить сбой после инициализации приложения, а не во время запуска приложения (если это то, что вы делаете). Я обычно делаю что-то вроде этого:

int* p=0;
*p=1;

Другая возможность состоит в том, что ваш компьютер не даст вам таких же результатов, как конечный пользователь, из-за отладчика Just In Time в Visual Studio, поэтому попробуйте его на типичном компьютере конечного пользователя. Еще одна возможность состоит в том, что ваша машина поддерживает XP, а поддержка WER была на ранней стадии в XP и лучше в Vista и Win7, поэтому попробуйте аварийно завершить работу приложения на более новой машине.

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