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 de Imagem genérica do kernel (GKI, na sigla em inglês). Ao desenvolver produtos, há muitas outras ferramentas integradas aos processos de desenvolvimento ou integração, algumas das quais exigem recursos do kernel que não fazem parte da GKI. Como acontece com a maioria dos recursos do 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 escopo semelhante a outros tipos de recursos e precisam seguir os mesmos processos descritos em Correções específicas do Android.
Recursos de depuração invasivos de downstream
Alguns recursos de depuração úteis 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 de produção, mas são indispensáveis para depurar determinados
tipos de problemas. Exemplos dessas ferramentas incluem limpadores (KASAN, UBSAN),
debugfs
e outros recursos e ferramentas específicos de parceiros.
Cabe a você determinar como gerenciar kernels especiais ativados para depuração que afetam a interface do módulo do kernel (KMI). 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 de GKI além das diretrizes descritas em Patches específicos do Android.