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.

Примечания

[править | править код]
  1. What was Dr. Watson's original name? Архивировано из оригинала 5 апреля 2012 года.
  2. Why is Windows Error Reporting nicknamed "Dr. Watson"? Дата обращения: 21 мая 2006. Архивировано из оригинала 2 марта 2012 года.
  3. Rick Grehan (1994-10). "Watcom C/C++ Gets a New Face". BYTE. Архивировано 20 ноября 2008.
  4. Windows Vista Help: What happened to Dr. Watson? Архивировано из оригинала 5 апреля 2012 года.
  5. Breakpad. Google. Дата обращения: 11 августа 2009. Архивировано из оригинала 3 февраля 2012 года.
  6. CrashRpt. Архивировано из оригинала 3 февраля 2012 года.