A partir de 27 de março de 2025, recomendamos usar android-latest-release em vez de aosp-main para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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 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 um 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 de ferramentas incluem limpadores (KASAN, UBSAN),
debugfs e outros recursos e ferramentas específicos do parceiro.
Cabe a você determinar como gerenciar kernels especiais com depuração ativada
que afetam a Interface de 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 aos clientes internos
ou parceiros de desenvolvimento downstream. Recomendamos continuar isolando esses
recursos em módulos, já que os recursos de depuração específicos do parceiro não podem ser aceitos no
kernel do GKI além das diretrizes descritas em
Patches específicos do Android.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Debug features\n\nThe Linux kernel provides many mechanisms to diagnose issues including\n[tracing](https://android.googlesource.com/kernel/common/+/refs/heads/android-mainline/Documentation/trace/),\n[BPF](https://lwn.net/Articles/818714/), and\n[profiling](https://perf.wiki.kernel.org/index.php/Tutorial). Most\nof these techniques are available in the Generic Kernel Image (GKI) binary\nkernel. When developing products, there are many more tools that are integrated\ninto the development or integration processes, some of which require kernel\nfeatures that aren't part of GKI. As with most GKI features, we encourage you to\nwork with upstream maintainers to add these features to Linux.\n| **Note:** Kernel debugging tools and techniques are beyond the scope of this document.\n\nDownstream debug features in vendor modules\n-------------------------------------------\n\nDebugging features are similar in scope to other kinds of features and must\nfollow the same processes as described in\n[Android-specific patches](/docs/core/architecture/kernel/kernel-code#android-specific-patches).\n\nIntrusive downstream debug features\n-----------------------------------\n\nSome useful debug features require special configuration options that are\ndisabled in GKI and therefore require a special build of the kernel. These\nfeatures might be disabled due to performance penalties or unsuitability for\nproduction use, but are indispensable for debugging certain\ntypes of issues. Examples of such tools include sanitizers (KASAN, UBSAN),\n`debugfs`, and other partner-specific features and tools.\n\nIt's up to you to determine how you manage special debug-enabled kernels\nthat impact the Kernel Module Interface (KMI). A common practice is to have an\ninternal debug build and deliver the resulting artifacts to internal customers\nor downstream development partners. We recommend continuing to isolate such\nfeatures into modules as partner-specific debug features can't be accepted into\nthe GKI kernel beyond the guidelines described in\n[Android-specific patches](/docs/core/architecture/kernel/kernel-code#android-specific-patches)."]]