breakpad

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

Особенности

  • кроссплатформенность (поддержка Windows, macOS, Linux, Android);
  • сбор минимизированных дампов при критических сбоях программы;
  • интеграция с системами отчетов об ошибках;
  • поддержка символических файлов для анализа дампов.

Основные компоненты

Библиотека состоит из нескольких модулей, каждый из которых отвечает за определенную часть процесса сбора и обработки дампов (подробнее с документацией можно ознакомиться здесь):

Клиентская часть (сбор дампов)

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

  • google_breakpad::ExceptionHandler — основной класс для обработки исключений и создания дампов;
  • google_breakpad::MinidumpDescriptor — класс для описания параметров создания минидампа;
  • ExceptionHandler::WriteMinidump() — метод для принудительного создания дампа без исключения;
  • ExceptionHandler::RegisterCallback() — регистрация callback-функций для обработки дампов.

Серверная часть (обработка дампов)

Инструменты для обработки собранных дампов на стороне разработчика:

  • minidump_stackwalk — утилита для символизации и анализа стека вызовов из минидампа;
  • minidump_dump — инструмент для просмотра содержимого минидампа в читаемом формате;
  • dump_syms — утилита для извлечения символов из исполняемых файлов;
  • symupload — инструмент для загрузки символов на сервер.

Генерация символов

Для корректной символизации дампов необходимо предварительно генерировать символьные файлы (символы) для каждой сборки приложения. Breakpad предоставляет утилиты для извлечения символов из бинарных файлов и создания символов в собственном формате.

  • google_breakpad::Module — класс для представления модуля с символами;
  • google_breakpad::SymbolSupplier — интерфейс для поставщиков символов;
  • dump_syms — основная утилита для создания файлов символов в формате Breakpad;
  • ms_symbol_server_converter — инструмент для работы с символами Microsoft Symbol Server.

Интеграция с системами отчетов

Breakpad может быть интегрирован с системами сбора отчетов об ошибках, такими как Google Crashpad или собственными серверами разработчиков, для автоматической отправки и анализа дампов.

  • google_breakpad::HTTPUpload — класс для загрузки дампов на HTTP-сервер;
  • google_breakpad::CrashReportSender — класс для отправки отчетов об ошибках;
  • sym_upload — утилита для загрузки символов на сервер с отчетностями.

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "breakpad/cci.20210521@aurora",
    )    

Процесс локальной сборки описан в документации.

breakpad

A set of client and server components which implement a crash-reporting system
Лицензия
BSD-3-Clause
Версия
Скачать
armv8
1.6 Mb
MD5: 5bf63c24e50f1f6e7922b9bc13b1b5a5
Updated: 04.09.2025, 09:35:26
armv7
1.49 Mb
MD5: 56cdbaab62768bd08738a9d7f37fc38b
Updated: 04.09.2025, 09:36:02
x86_64
1.84 Mb
MD5: bc7694d3e7ac93125c1237a3d6066db5
Updated: 04.09.2025, 09:36:09
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.