Ядро Linux предоставляет множество механизмов для диагностики проблем, включая трассировку , BPF и профилирование . Большинство этих методов доступно в бинарном ядре Generic Kernel Image (GKI). При разработке продуктов существует множество дополнительных инструментов, интегрированных в процессы разработки или интеграции, некоторые из которых требуют функций ядра, не входящих в GKI. Как и в случае с большинством функций GKI, мы рекомендуем вам сотрудничать с разработчиками основного ядра для добавления этих функций в Linux.
Функции отладки в модулях поставщика
Функции отладки по своему объему аналогичны другим типам функций и должны следовать тем же процессам, которые описаны в исправлениях, специфичных для Android .
Навязчивые функции отладки в нисходящем направлении
Некоторые полезные функции отладки требуют специальных параметров конфигурации, которые отключены в GKI и, следовательно, требуют специальной сборки ядра. Эти функции могут быть отключены из-за снижения производительности или непригодности для использования в рабочей среде, но они незаменимы для отладки определённых типов проблем. Примерами таких инструментов являются дезинфицирующие средства (KASAN, UBSAN), debugfs
и другие функции и инструменты, специфичные для партнёров.
Вы сами решаете, как управлять специальными ядрами с поддержкой отладки, которые влияют на интерфейс модулей ядра (KMI). Распространенной практикой является внутренняя отладочная сборка и предоставление полученных артефактов внутренним клиентам или партнёрам по разработке. Мы рекомендуем продолжать изолировать такие функции в модули, поскольку отладочные функции, специфичные для партнёров, не могут быть включены в ядро GKI за пределами рекомендаций, описанных в патчах для Android .