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

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

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

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


person Dipthong    schedule 18.05.2011    source источник


Ответы (3)


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

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

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

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

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

person Dipthong    schedule 18.05.2011
comment
К вашему сведению, у меня есть Windows 7 и Visual Studio, и когда мои приложения дают сбой, они включают предложение проверить в Интернете решение, означающее поговорить с WER. Если хочешь, я могу проверить мои настройки для тебя. Это управляемые приложения, вызывающие Environment.FailFast. - person Kate Gregory; 21.05.2011

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

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

Волшебная строка для исправления:

Application.SetUnhandledExceptionMode(UnhandledExceptionMode.ThrowException);
person AidanO    schedule 18.11.2011

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

int* p=0;
*p=1;

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

person the_mandrill    schedule 18.05.2011