Зачем Firefox понадобились отладочные символы дистрибутивов Linux

Отчёт о падении браузера полезен лишь тогда, когда адреса в памяти удаётся связать с функциями и исходным кодом. Инженер Mozilla Габриэле Свелто описал, процесс улучшения диагностики Firefox в Linux.

Проблема с символами в сборках дистрибутивов

Пользователи многих дистрибутивов получают Firefox из репозиториев системы, а не из готовой сборки Mozilla. Для бинарных файлов и библиотек, которые поставляет дистрибутив (например, графические и системные библиотеки), требуются соответствующие им отладочные данные. Без таких данных сервисы обработки дампов получали лишь сырые адреса вместо читаемых стеков вызовов, что сильно затрудняло локализацию причин падений.

Решение и его эффект

Команда организовала сбор и преобразование отладочной информации из репозиториев нескольких дистрибутивов — Arch, Debian, Fedora, OpenSUSE и Ubuntu — в файлы символов, пригодные для анализа crash-отчётов. По оценке разработчиков, доля Linux-отчётов, для которых стали доступны читаемые стеки, выросла с менее 20% до более 99%.

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