Отчёт об ошибке (программирование)
Введение
В программировании отчёт об ошибке (англ. error report или crash report) — это файл, содержащий техническую информацию об исключительной ситуации (исключении), произошедшем в программе на компьютере пользователя. В терминологии программирования критическая ошибка, которая приводит к аварийному завершению программы, также называется крэшем (англ. crash).
Отчеты об ошибках часто включают в себя такую информацию, как: тип креша, образ стека, версия программы, тип центрального процессора, версия операционной системы, а также лог программы.
Создание отчета об ошибке
Отчет об ошибке обычно создается специальной программой (англ. crash reporter). Целью такой программы является сбор данных о произошедшем креше и отправка этих данных по сети Интернет некой третьей стороне, обычно этой третьей стороной является производитель программного обеспечения. Отчет об ошибке призван помочь разработчикам программного обеспечения выяснить причину креша и исправить ее в последующих релизах программного продукта.
Mac OS X
В Mac OS X cуществует стандартная программа — сборщик отчетов об ошибке: /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 (ранее также известный как 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]. Библиотека CrashRpt позволяет отлавливать исключения в программах, созданных в Microsoft Visual C++ и работающих в Windows. Библиотека распространяется по «новой» лицензии BSD.
CrashRpt перехватывает необработанные исключения, создает файл-минидамп, строит описатель ошибки в формате XML, предоставляет интерфейс с пользователем, и, наконец, сжимает отчет и отправляет его группе поддержки приложения.
Cмотрите также
Ссылки
- ↑ Mozilla Talkback server. Проверено 21 сентября 2006.
- ↑ Deploying the Airbag. BSBlog (Mozilla developer Benjamin Smedberg’s weblog).
- ↑ Using Breakpad with Gran Paradiso (1.9a3). BSBlog (Mozilla developer Benjamin Smedberg’s weblog).
- ↑ Bug 381099 — Turn on crash reporting by default (Win+Mac), mozilla.org bug tracker]
- ↑ EdgyReleaseNotes. Проверено 14 февраля 2007.
- ↑ Apport. Ubuntu Wiki. Проверено 14 февраля 2007.
- ↑ CrashRpt Project Page.
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....