Как включить диалоговое окно Window Error Reporting (WER).Общий вопрос новичка - PullRequest
1 голос
/ 18 мая 2011

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

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

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

Ответы [ 3 ]

1 голос
/ 19 мая 2011

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

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

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

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

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

1 голос
/ 18 ноября 2011

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

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

Волшебная линия, которую нужно исправить:

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);
0 голосов
/ 18 мая 2011

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

int* p=0;
*p=1;

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

...