Od 27 marca 2025 r. zalecamy używanie android-latest-release zamiast aosp-main do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Rdzeń systemu Linux udostępnia wiele mechanizmów do diagnozowania problemów, takich jak śledzenie, BPF i profilowanie. Większość tych technik jest dostępna w jądrze binarnym Generic Kernel Image (GKI). Podczas tworzenia produktów wykorzystuje się znacznie więcej narzędzi zintegrowanych z procesami tworzenia i integracji. Niektóre z nich wymagają funkcji jądra, które nie są częścią GKI. Podobnie jak w przypadku większości funkcji GKI, zachęcamy do współpracy z utrzymającymi upstream, aby dodać te funkcje do systemu Linux.
Funkcje debugowania w dalszym łańcuchu w modułach dostawców
Funkcje debugowania mają podobny zakres do innych funkcji i muszą być zgodne z procesami opisanymi w artykule Poprawki dotyczące Androida.
Inwazyjne funkcje debugowania na dalszych etapach
Niektóre przydatne funkcje debugowania wymagają specjalnych opcji konfiguracji, które są wyłączone w GKI, dlatego też wymagają specjalnej wersji jądra. Te funkcje mogą być wyłączone z powodu kar za wydajność lub nieodpowiednie do użytku produkcyjnego, ale są niezbędne do debugowania niektórych typów problemów. Przykładami takich narzędzi są środki dezynfekujące (KASAN, UBSAN),
debugfsoraz inne funkcje i narzędzia partnerów.
To Ty decydujesz, jak zarządzać specjalnymi jądrami z obsługą debugowania, które wpływają na interfejs modułu jądra (KMI). Typową praktyką jest tworzenie wewnętrznej kompilacji debugowania i dostarczanie powstałych artefaktów klientom wewnętrznym lub partnerom zewnętrznym. Zalecamy dalsze izolowanie takich funkcji w modułach, ponieważ funkcje debugowania związane z partnerem nie mogą być dodawane do jądra GKI poza wytycznymi opisanymi w łatkach dotyczących Androida.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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)."]]