Введение
Системное программное обеспечение, идентифицирующее и сообщающее детали сбоев.
Репортер сбоев – это обычно системное программное обеспечение, предназначенное для выявления и сообщения деталей сбоев, а также оповещения о них в производственной среде или средах разработки/тестирования. Отчеты о сбоях часто содержат данные, такие как трассировки стека, тип сбоя, тенденции и версию программного обеспечения. Эти отчеты помогают разработчикам программного обеспечения для веб-приложений, SAAS, мобильных приложений и других платформ диагностировать и устранять основную причину сбоев. Отчеты о сбоях могут содержать конфиденциальную информацию, такую как пароли, адреса электронной почты и контактные данные, что делает их объектом интереса для исследователей в области компьютерной безопасности. Внедрение инструментов отчетности о сбоях в цикл разработки стало стандартом, а сами инструменты стали широко доступны, многие из них предлагаются бесплатно, например, Crashlytics. В эту область вошли многие крупные игроки индустрии, являющиеся частью экосистемы разработки программного обеспечения. Компании, такие как Twitter, Google и другие, прилагают значительные усилия для стимулирования разработчиков программного обеспечения к использованию их API, понимая, что это в конечном итоге увеличит их доходы (через рекламу и другие механизмы). Осознавая необходимость предлагать эффективные решения для широкого спектра проблем разработки, чтобы не уступить конкурентам, они постоянно добавляют новые, продвинутые функции. Инструменты отчетности о сбоях представляют собой важную функциональность, которую крупные компании включают в свой портфель решений. Многие инструменты отчетности о сбоях специализируются на мобильных приложениях и часто реализуются в виде SDK.
macOS
В macOS есть стандартный инструмент отчетов об ошибках Crash Reporter. Приложение отправляет журналы сбоев Unix в Apple для анализа инженерами. В верхней части окна отображается журнал сбоя, а в нижней – поле для комментариев пользователя. Пользователи также могут скопировать и вставить журнал в свой почтовый клиент, чтобы отправить его разработчику приложения. Crash Reporter.app имеет 3 основных режима работы: не отображать ничего при сбое, отображать диалоговое окно "Приложение завершило работу с ошибкой" или отображать окно отчета об ошибке.
Окна
Microsoft Windows включает службу отчетов об ошибках под названием Windows Error Reporting, которая предлагает пользователям отправлять отчеты об ошибках в Microsoft для онлайн-анализа. Информация поступает в центральную базу данных, управляемую Microsoft. Она содержит диагностические данные, которые помогают компании или команде разработчиков, ответственным за возникновение ошибки, отладить и устранить проблему, если они примут такое решение. Отчеты об ошибках стороннего программного обеспечения доступны сторонним разработчикам, которым Microsoft предоставила соответствующий доступ. Система учитывает все этапы процесса отладки и выпуска обновлений, что позволяет применять целевые исправления ошибок через Windows Update. Иными словами, исправление ошибки предлагается только пользователям, столкнувшимся с конкретным типом ошибки, что ограничивает область ее распространения. По данным Der Spiegel, подразделение Tailored Access Operations (TAO) АНБ использовало систему отчетов об ошибках Microsoft для взлома компьютеров Секретариата общественной безопасности Мексики. Согласно тому же источнику, отчеты об ошибках Microsoft автоматически собираются в базу данных XKeyscore АНБ для облегчения подобных операций.
Аварийный
Другая библиотека для отчетов об ошибках в Windows — CrashRpt. Библиотека CrashRpt — это легковесный фреймворк обработки ошибок с открытым исходным кодом для приложений, созданных на Microsoft Visual C++ и работающих в Windows. Библиотека распространяется по лицензии New BSD. CrashRpt перехватывает необработанные исключения, создает дамп памяти (minidump) при сбое, формирует описание сбоя в формате XML, предоставляет интерфейс для просмотра отчета о сбое пользователем и, наконец, сжимает и отправляет отчет о сбое в службу поддержки программного обеспечения. CrashRpt также предоставляет серверную утилиту командной строки для анализа отчетов о сбоях под названием crprober. Эта утилита способна читать все полученные отчеты о сбоях из каталога и генерировать сводный файл в текстовом формате для каждого отчета. Она также группирует схожие отчеты о сбоях, что упрощает выявление наиболее частых проблем. Утилита crprober не имеет графического интерфейса, поэтому она достаточно сложна и неинтуитивна в использовании. Существует также серверное программное обеспечение с открытым исходным кодом под названием CrashFix Server, которое может хранить, организовывать и анализировать отчеты о сбоях, отправленные библиотекой CrashRpt. Оно может группировать схожие отчеты о сбоях, содержит встроенный трекер ошибок и генерировать статистические отчеты. Сервер CrashFix предоставляет веб-интерфейс, позволяющий нескольким членам команды совместно работать (загружать отладочные символы, просматривать отчеты о сбоях и связывать ошибки с отчетами о сбоях).
ABRT
ABRT (Automated Bug Reporting Tool) — это инструмент для автоматического сбора отчетов об ошибках, разработанный для Fedora и Red Hat Enterprise Linux. В настоящее время разработчики не планируют портировать его на другие дистрибутивы Linux. ABRT перехватывает дампы памяти или трассировки стека от приложений и (после подтверждения пользователем) отправляет отчёты об ошибках в различные системы отслеживания ошибок, такие как Fedora Bugzilla.
Отслеживатель ошибок Ubuntu
Ubuntu предоставляет публичный трекер ошибок по адресу errors.ubuntu.com, который ежедневно собирает сотни тысяч отчетов об ошибках с миллионов машин. Если программа аварийно завершает работу в Ubuntu, обработчик сбоев (например, Apport) уведомляет пользователя и предлагает сообщить об ошибке. Если пользователь соглашается отправить отчет об ошибке, детали (включая, возможно, дамп ядра) загружаются на сервер Ubuntu (daisy.ubuntu.com) для анализа. Дамп ядра автоматически обрабатывается для создания трассировки стека и сигнатуры сбоя. Сигнатура сбоя используется для классификации последующих отчетов об ошибках, вызванных той же проблемой.
GNOME (англ.)
Bug Buddy — это инструмент для отчётов об ошибках, используемый платформой GNOME. Когда приложение, использующее библиотеки GNOME, аварийно завершает работу, Bug Buddy генерирует трассировку стека с помощью gdb и предлагает пользователю отправить отчёт в GNOME Bugzilla. Пользователь может добавлять комментарии и просматривать детали отчёта об ошибке.
KDE
Инструмент для отчетов об ошибках, используемый KDE, называется Dr. Konqi. Когда приложение, использующее библиотеки KDE, аварийно завершает работу, Dr. Konqi генерирует трассировку стека с помощью gdb и предлагает пользователю отправить отчёт в Bugzilla KDE. Пользователь может добавлять комментарии и просматривать детали отчёта об ошибке.
Отзыв
Talkback (также известный как Агент обратной связи по качеству) — это система отчетов об ошибках, использовавшаяся в программном обеспечении Mozilla до версии 1.8.1 для отправки информации о сбоях продуктов на централизованный сервер для обобщения или индивидуального анализа. Talkback — это проприетарное программное обеспечение, лицензированное корпорации Mozilla компанией SupportSoft. Если продукт Mozilla (например, Mozilla Firefox, Mozilla Thunderbird) аварийно завершал работу при включенном Talkback, появлялся агент Talkback, предлагая пользователю предоставить дополнительную информацию об ошибке. Talkback не заменяет встроенную систему отчетов об ошибках операционной системы, которая, при включении, отображается вместе с агентом Talkback. В Firefox начиная с версии 3 Talkback был заменен на Breakpad.
Брейкпад
Breakpad (ранее известная как Airbag) — это замена Talkback с открытым исходным кодом. Разработанная компаниями Google и Mozilla, она используется в современных продуктах Mozilla, таких как Firefox и Thunderbird. Её важность заключается в том, что это первая кроссплатформенная система отчетов об ошибках с открытым исходным кодом. С 2007 года Breakpad включена в Firefox для Windows, Mac OS X и Linux. Breakpad обычно используется вместе с Socorro, которая принимает и классифицирует отчеты об ошибках, присылаемые пользователями. Сам по себе Breakpad является лишь частью системы отчетов об ошибках, поскольку не содержит механизма отправки этих отчетов.
Крэшпад
Crashpad — это система отчетов об ошибках с открытым исходным кодом, используемая Google в Chromium. Она была разработана как замена Breakpad из-за обновления macOS 10.10, которое удалило API, необходимые для работы Breakpad. В настоящее время Crashpad включает в себя клиент для отправки отчетов об ошибках и сопутствующие инструменты для macOS и Windows и считается практически завершенной для этих платформ. Crashpad стал системой отчетов об ошибках для Chromium на macOS с марта 2015 года, а на Windows — с ноября 2015 года.
Мобильные ОС
Операционные системы Android и iOS также имеют встроенные средства отчётов об ошибках.