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