Функции отладки

Ядро Linux предоставляет множество механизмов для диагностики проблем, включая трассировку , BPF и профилирование . Большинство этих методов доступны в бинарном ядре Generic Kernel Image (GKI). При разработке продуктов в процессы разработки или интеграции интегрируется множество других инструментов, некоторые из которых требуют наличия функций ядра, не входящих в GKI. Как и в случае с большинством функций GKI, мы рекомендуем вам сотрудничать с разработчиками, чтобы добавить эти функции в Linux.

Функции отладки в модулях сторонних разработчиков

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

Навязчивые функции отладки на нижестоящих уровнях

Некоторые полезные функции отладки требуют специальных параметров конфигурации, которые отключены в GKI и, следовательно, требуют специальной сборки ядра. Эти функции могут быть отключены из-за снижения производительности или непригодности для использования в производственной среде, но они незаменимы для отладки определенных типов проблем. Примерами таких инструментов являются санитайзеры (KASAN, UBSAN), debugfs и другие функции и инструменты, специфичные для партнеров.

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