Dr. Watson (отладчик)
Dr. Watson — отладчик приложений в операционных системах Microsoft Windows. Он обычно носит имя drwatson.exe
, drwtsn32.exe
или dwwin.exe
, в зависимости от версии Windows. Отладчик получил своё название от доктора Джона Ватсона (John Watson) из произведений Артура Конан Дойля о Шерлоке Холмсе, так как цель отладчика — сбор симптомов, сопутствующих ошибке. Изначально название этого диагностического инструмента было «Sherlock»[1]. Использование слова «Watson» позднее было расширено и включило в себя сбор и отправку отзывов от пользователей программного обеспечения[2].
Отчёт об ошибке
Информация (отчёт об ошибке), собранная Dr. Watson — это техническая информация, нужная разработчикам ПО, чтобы диагностировать причину ошибки. Текстовый файл (Drwtsn32.log) создается в момент, когда случилась ошибка, и может быть доставлен персоналу, ответственному за поддержку ПО предпочтительным им способом. Также может быть создан файл-минидамп — бинарный файл, который может быть открыт и проанализирован с помощью программы-отладчика. Dr. Watson может определить точное место ошибки в коде приложения, если имеются необходимые символьные файлы (symbol files) и настроены пути для поиска этих файлов.
В момент, когда в приложении Windows происходит критическая ошибка, система производит поиск программного обработчика ошибки (англ. error handler). Программный обработчик ошибки — это обычно зарегистрированная в системе функция, которая вызывается, когда в программе возникает исключение. Если система не обнаруживает зарегистрированный обработчик ошибки, система удостоверяется, что программа в данный момент не находится в режиме отладки, и ошибка считается необработанной. Система затем ищет в реестре Windows информацию об установленных программах-отладчиках ошибок, где по умолчанию записан Dr. Watson. Сторонний отладчик также может быть использован вместо Dr. Watson. Например, компилятор языка С Watcom включает в себя похожий инструмент обработки ошибок, называемый «Dr. Watcom»[3].
Начиная с Windows Vista, название Dr. Watson было заменено на «Problem Reports and Solutions»[4].
Отчёт об ошибке отправляется с помощью службы Windows Error Reporting на специальный сервер Microsoft, где все отчёты сортируются и хранятся в централизованной базе данных. Для того, чтобы получить доступ к отчётам для конкретного приложения, разработчику нужно зарегистрироваться на сервере Microsoft, после чего он получает возможность анализировать отчёты об ошибках.
Аналогичные программы в Windows
Google Breakpad[5] является многоплатформенной библиотекой с открытым исходным кодом для обработки исключительных ситуаций и отправки отчёта об ошибке. Он используется в популярном браузере Firefox для доставки отчётов об ошибках от пользователей.
Библиотека CrashRpt[6] также предназначена для сбора и отправки сообщений об ошибках на стороне пользователя. Она является открытой библиотекой, но, в отличие от Breakpad предназначена только для платформы Windows.
Примечания
- What was Dr. Watson's original name? (недоступная ссылка). Архивировано 5 апреля 2012 года.
- Why is Windows Error Reporting nicknamed "Dr. Watson"? (недоступная ссылка). Дата обращения: 21 мая 2006. Архивировано 2 марта 2012 года.
- Rick Grehan. Watcom C/C++ Gets a New Face, BYTE (October 1994). Архивировано 20 ноября 2008 года.
- Windows Vista Help: What happened to Dr. Watson? (недоступная ссылка). Архивировано 5 апреля 2012 года.
- Breakpad (недоступная ссылка). Google. Дата обращения: 11 августа 2009. Архивировано 3 февраля 2012 года.
- CrashRpt (недоступная ссылка). Архивировано 3 февраля 2012 года.