O kernel do Linux oferece muitos mecanismos para diagnosticar problemas, incluindo rastreamento, BPF e criação de perfil. A maioria dessas técnicas está disponível no kernel binário da imagem genérica do kernel (GKI). Ao desenvolver produtos, há muitas outras ferramentas integradas aos processos de desenvolvimento ou integração. Algumas delas exigem recursos do kernel que não fazem parte do GKI. Como acontece com a maioria dos recursos da GKI, recomendamos que você trabalhe com os mantenedores upstream para adicionar esses recursos ao Linux.
Recursos de depuração downstream em módulos do fornecedor
Os recursos de depuração têm um escopo semelhante a outros tipos de recursos e precisam seguir os mesmos processos descritos em Patches específicos do Android.
Recursos de depuração downstream intrusivos
Alguns recursos úteis de depuração exigem opções de configuração especiais que são
desativadas no GKI e, portanto, exigem um build especial do kernel. Esses
recursos podem ser desativados devido a penalidades de desempenho ou inadequação para
uso em produção, mas são indispensáveis para depurar determinados
tipos de problemas. Exemplos dessas ferramentas incluem sanitizadores (KASAN, UBSAN),
debugfs
e outros recursos e ferramentas específicos de parceiros.
Você precisa determinar como gerenciar kernels especiais ativados para depuração que afetam a interface do módulo do kernel (KMI, na sigla em inglês). Uma prática comum é ter um build de depuração interno e entregar os artefatos resultantes a clientes internos ou parceiros de desenvolvimento downstream. Recomendamos continuar isolando esses recursos em módulos, já que recursos de depuração específicos do parceiro não podem ser aceitos no kernel GKI além das diretrizes descritas em Patches específicos do Android.