4 нояб. 2010 г.

Почему кнопка "Завершить задачу" сразу же не прекращает работу программы?

Автор: Рэймонд Чен.
Оригинал статьи: Why doesn't the End Task button end my task immediately?

Комментатор littleguru спрашивает: "Почему кнопка "Завершить сейчас" не завершает процесс сразу же?"

Процесс действительно завершается, но не до сообщения от нашего спонсора, а после нажатия кнопки "Завершить сейчас".

"Отчет об ошибках" начинает свою работу, когда вы прекращаете выполнение "зависшего" приложения; состояние последнего записывается для того, чтобы его можно было отправить на "корабль" (с вашего разрешения). Если вы работаете с Windows XP или Windows Vista, то можете заметить процесс dumprep.exe или WerFault.exe; это парни, которые выполняют сбор данных.

Для определения причины, по которой приложение перестало отвечать, и способа решения проблемы, отчеты о сбоях изучаются в Microsoft. Мне самому не раз приходилось проводить подобный анализ. Иногда попадается нечто заурядное (приложение отправляет сообщение от одного потока к другому, находясь в критической секции, а поток не может получить сообщение, потому что ожидает освобождения критической секции, занятой отправителем - классическая взаимоблокировка), а иногда нечто странное (сбой приложения в случае, если количество устройств воспроизведения звука не равно единице). Независимо от причины, я составляю подробный отчет об исследовании проблемы, и люди, руководящие подобными делами, принимают меры к информированию разработчиков приложения (предполагается, что разработчики зарегистрированы в системе Winqual).

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



В исходной статье иллюстрация отсутствует. - Прим. перев.

Примечание. Эта статья экспериментальная: я упомянул "Отчет об ошибках" и WHQL. Если люди жалуются на центры сертификации, то это подтверждает мое предположение о необходимости возвращения к старым отладочным историям. (Возможно, речь идет о т.н. "телепатической отладке" (psychic debugging) - Прим. перев.)

Дополнение. Получены экспериментальные результаты. Больше никаких историй, касающихся "Отчета об ошибках" и WHQL.

Комментариев нет:

Отправить комментарий