Отчёт об ошибке (программирование)

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

В программировании отчёт об ошибке (англ. error report или crash report) — это файл, содержащий техническую информацию об исключительной ситуации (исключении), произошедшей в программе на компьютере пользователя. В терминологии программирования критическая ошибка, которая приводит к аварийному завершению программы («падению»), также называется крэшем или «крашем» (от англ. crash).

Отчёты об ошибках часто включают в себя такую информацию, как: тип крэша, образ стека, версия программы, тип центрального процессора, версия операционной системы, а также лог программы.

Создание отчёта об ошибке[править | править код]

Отчёт об ошибке обычно создаётся специальной программой (англ. crash reporter). Целью такой программы является сбор данных о произошедшем крэше и отправка этих данных по сети Интернет некой третьей стороне, обычно этой третьей стороной является производитель программного обеспечения. Отчёт об ошибке призван помочь разработчикам программного обеспечения выяснить причину крэша и исправить её в последующих релизах программного продукта.

Mac OS X[править | править код]

В Mac OS X существует стандартная программа — сборщик отчётов об ошибке: /System/Library/CoreServices/Crash Reporter.app. Crash Reporter.app отправляет крэш-логи, стандартные для ОС Unix, в компанию Apple Computer, где эти логи анализируют их инженеры. В верхнем поле окна отчёта об ошибке содержится крэш лог, а в нижнем пользователь может ввести свои комментарии, например, рассказать что он делал в момент, когда произошёл крэш. Пользователи также могут скопировать лог и отправить его разработчику ПО для анализа. Crash Reporter.app работает в трёх основных режимах в случае ошибки: ничего не делать, вывести сообщение «Application has crashed» или вывести окно отчёта об ошибке.

Windows[править | править код]

Microsoft Windows XP включает в себя службу отправки отчётов об ошибке, называемую Windows Error Reporting (не путать с Dr. Watson), которая позволяет отправить отчёт об ошибке в компанию Microsoft для онлайн-анализа. Информация отправляется в централизованную базу данных, управляемую Microsoft. Отчёт содержит необходимую информацию, которая позволяет разработчику диагностировать причину ошибки и исправить её.

Windows вероятно имеет наиболее сложную систему анализа ошибок на сегодняшний день, в которой централизованная база данных может быть настроена для сбора дополнительной информации от пользователей, испытывающих определённый тип проблемы. Система охватывает все части процесса отладки и выпуска ПО таким образом, что исправления могут быть применены к ПО на компьютере пользователя автоматически через службу Windows Update.

GNOME[править | править код]

На платформе GNOME для сбора и отправки отчётов об ошибке используется утилита Bug Buddy. Когда приложение, использующее библиотеки GNOME аварийно завершается, Bug Buddy генерирует снимок стека, используя отладчик gdb и предлагает пользователю отправить отчёт в систему GNOME bugzilla. Пользователь может добавить свой комментарий и посмотреть, что содержится в отчёте.

KDE[править | править код]

Утилита для отправки отчётов об ошибках в KDE называется Dr. Konqi.

Mozilla[править | править код]

Talkback[править | править код]

(также известный как Quality Feedback Agent) являлся утилитой для отправки сообщений об ошибках в программном обеспечении Mozilla вплоть до версии 1.8.1 для отправки отчётов об ошибках на централизованный сервер.[1] Talkback является проприетарным ПО, на которое Mozilla Corporation получила лицензию у компании SupportSoft. Когда продукты Mozilla (например Mozilla Firefox, Mozilla Thunderbird) аварийно завершали свою работу, агент Talkback предлагал пользователю ввести описание ошибки. Talkback не заменит собой встроенной в операционную систему программы для отправки отчётов об ошибке, которая, запускается наряду с агентом Talkback. Talkback был заменён на программу Breakpad в браузере Firefox начиная с версии 3.

Breakpad[править | править код]

Breakpad Архивировано 3 февраля 2012 года. (ранее также известный как Airbag) — это замена Talkback. Он является ПО с открытым исходным кодом. Breakpad разрабатывается совместно Google и Mozilla, и используется в текущих продуктах, основанных на движке Mozilla, таких как Firefox или Thunderbird.[2][3] Этот продукт имеет большое значение, так как это первая мультиплатформенная утилита с открытым исходным кодом, предназначенная для отправки отчётов об ошибках.

Начиная с 27 мая 2007, Breakpad включён в стволовые сборки (trunk builds) Firefox 3 для Windows NT и Mac OS X, а также, несколько недель спустя, в Linux.[4]

Ubuntu[править | править код]

Вместе с релизом Ubuntu 6.10, Ubuntu включает утилиту Apport[5].

Apport перехватывает процессы, в которых произошло исключение и которые готовы создать дамп ядра (core dump), и записывает отчёты об ошибках в определённое место. Затем специальный демон, предлагает пользователю отправить отчёты в Ubuntu для их анализа.[6]

World of Warcraft[править | править код]

World of Warcraft — игра, использующая своё собственное средство доставки отчётов об ошибке, называемое «Error Reporter». Однако данная утилита не всегда перехватывает исключения; иногда вместо него вызывается стандартная утилита-крэш репортёр, встроенная в ОС. Известно, что Error Reporter иногда сам завершается аварийно в процессе отправки отчёта об ошибке.

CrashRpt[править | править код]

Ещё одной библиотекой для доставки отчётов об ошибке в операционной системе Windows является CrashRpt[7][8]. Библиотека CrashRpt позволяет отлавливать исключения в программах, созданных в Microsoft Visual C++ и работающих в Windows. Библиотека распространяется по «новой» лицензии BSD.

CrashRpt перехватывает необработанные исключения, создаёт файл-минидамп, строит описатель ошибки в формате XML, предоставляет интерфейс с пользователем, и, наконец, сжимает отчёт и отправляет его группе поддержки приложения.

См. также[править | править код]

Примечания[править | править код]

  1. Mozilla Talkback server. Дата обращения: 21 сентября 2006. Архивировано 5 апреля 2012 года.
  2. Deploying the Airbag Архивная копия от 28 июня 2008 на Wayback Machine. BSBlog (Mozilla developer Benjamin Smedberg’s weblog).
  3. Using Breakpad with Gran Paradiso (1.9a3) Архивная копия от 15 июня 2008 на Wayback Machine. BSBlog (Mozilla developer Benjamin Smedberg’s weblog).
  4. Bug 381099 — Turn on crash reporting by default (Win+Mac) Архивная копия от 27 июля 2020 на Wayback Machine, mozilla.org bug tracker]
  5. EdgyReleaseNotes. Дата обращения: 14 февраля 2007. Архивировано из оригинала 13 июня 2007 года.
  6. Apport. Ubuntu Wiki. Дата обращения: 14 февраля 2007. Архивировано 11 мая 2015 года.
  7. CrashRpt Project Page. Дата обращения: 20 августа 2009. Архивировано 3 февраля 2012 года.
  8. Использование библиотеки CrashRpt. Дата обращения: 5 июля 2010. Архивировано 5 апреля 2012 года.