Funkcje debugowania

Jądro Linuksa zapewnia wiele mechanizmów diagnozowania problemów, w tym śledzenie , BPF i profilowanie . Większość z tych technik jest dostępna w jądrze binarnym Generic Kernel Image (GKI). Podczas opracowywania produktów istnieje wiele innych narzędzi integrowanych w procesach rozwoju lub integracji, a 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 opiekunami wyższego szczebla w celu dodania tych funkcji do Linuksa.

Dalsze funkcje debugowania w modułach dostawców

Funkcje debugowania mają podobny zakres do innych rodzajów funkcji i muszą podlegać tym samym procesom, które opisano w poprawkach specyficznych dla systemu Android .

Natrętne funkcje debugowania podrzędnego

Niektóre przydatne funkcje debugowania wymagają specjalnych opcji konfiguracyjnych, które są wyłączone w GKI i dlatego wymagają specjalnej kompilacji jądra. Funkcje te mogą zostać wyłączone ze względu na spadek wydajności lub nieprzydatność do użytku produkcyjnego, ale są niezbędne do debugowania niektórych typów problemów. Przykłady takich narzędzi obejmują środki dezynfekujące (KASAN, UBSAN), debugfs i inne funkcje i narzędzia specyficzne dla partnerów.

Od Ciebie zależy, w jaki sposób będziesz zarządzać specjalnymi jądrami z możliwością debugowania, które mają wpływ na interfejs modułu jądra (KMI). Powszechną praktyką jest tworzenie wewnętrznego debugowania i dostarczanie powstałych artefaktów klientom wewnętrznym lub dalszym partnerom programistycznym. Zalecamy dalsze izolowanie takich funkcji w modułach, ponieważ funkcje debugowania specyficzne dla partnera nie mogą zostać zaakceptowane w jądrze GKI poza wytycznymi opisanymi w poprawkach specyficznych dla Androida .