À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release au lieu de aosp-main pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Le noyau Linux fournit de nombreux mécanismes pour diagnostiquer les problèmes, y compris le traceur, le BPF et le profilage. La plupart de ces techniques sont disponibles dans le kernel binaire de l'image de kernel générique (GKI). Lors du développement de produits, de nombreux autres outils sont intégrés aux processus de développement ou d'intégration, dont certains nécessitent des fonctionnalités de kernel qui ne font pas partie de GKI. Comme pour la plupart des fonctionnalités GKI, nous vous encourageons à collaborer avec les responsables upstream pour ajouter ces fonctionnalités à Linux.
Fonctionnalités de débogage en aval dans les modules du fournisseur
Les fonctionnalités de débogage ont une portée similaire à celle des autres types de fonctionnalités et doivent suivre les mêmes processus que ceux décrits dans les correctifs spécifiques à Android.
Fonctionnalités de débogage intrusives en aval
Certaines fonctionnalités de débogage utiles nécessitent des options de configuration spéciales qui sont désactivées dans GKI et nécessitent donc une version spéciale du kernel. Ces fonctionnalités peuvent être désactivées en raison de pénalités de performances ou de leur inadéquation à une utilisation en production, mais elles sont indispensables pour déboguer certains types de problèmes. Exemples d'outils de ce type : nettoyeurs (KASAN, UBSAN), debugfs et autres fonctionnalités et outils spécifiques aux partenaires.
C'est à vous de déterminer comment gérer les noyaux spéciaux compatibles avec le débogage qui ont un impact sur l'interface de module de noyau (KMI). Il est courant de créer un build de débogage interne et de fournir les artefacts qui en résultent aux clients internes ou aux partenaires de développement en aval. Nous vous recommandons de continuer à isoler ces fonctionnalités dans des modules, car les fonctionnalités de débogage spécifiques aux partenaires ne peuvent pas être acceptées dans le noyau GKI au-delà des consignes décrites dans les correctifs spécifiques à Android.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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)."]]