A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release anziché aosp-main per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Il kernel Linux fornisce molti meccanismi per diagnosticare i problemi, tra cui tracce, BPF e profiling. La maggior parte di queste tecniche è disponibile nel kernel del codice binario dell'immagine del kernel generico (GKI). Durante lo sviluppo dei prodotti, vengono integrati molti altri strumenti nei processi di sviluppo o integrazione, alcuni dei quali richiedono funzionalità del kernel che non fanno parte di GKI. Come per la maggior parte delle funzionalità GKI, ti invitiamo a collaborare con i manutentori upstream per aggiungerle a Linux.
Funzionalità di debug a valle nei moduli del fornitore
Le funzionalità di debug hanno un ambito simile ad altri tipi di funzionalità e devono seguire le stesse procedure descritte in Patch specifiche per Android.
Funzionalità di debug intrusive a valle
Alcune funzionalità di debug utili richiedono opzioni di configurazione speciali che sono disabilitate in GKI e richiedono quindi una build speciale del kernel. Queste funzionalità potrebbero essere disattivate a causa di penalizzazioni delle prestazioni o di inidoneità all'uso in produzione, ma sono indispensabili per il debug di determinati tipi di problemi. Alcuni esempi di questi strumenti sono gli sterilizzatori (KASAN, UBSAN),debugfs e altre funzionalità e strumenti specifici per i partner.
Sta a te decidere come gestire i kernel speciali abilitati al debug
che influiscono sull'interfaccia del modulo del kernel (KMI). Una prassi comune è avere una compilazione di debug interna e fornire gli elementi risultanti ai clienti interni o ai partner di sviluppo a valle. Consigliamo di continuare a isolare queste funzionalità in moduli, poiché le funzionalità di debug specifiche del partner non possono essere accettate nel kernel GKI oltre le linee guida descritte nelle patch specifiche per Android.
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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)."]]