Opublikowano wydanie systemu dynamicznego śledzenia SystemTap 5.0, które oferuje dla platformy Linux narzędzia debugujące podobne do technologii DTrace. SystemTap umożliwia szczegółowe monitorowanie działającego systemu Linux, zbieranie statystyk dotyczących pracy aplikacji, profilowanie oraz kontrolę wywołań systemowych. Zarządzanie odbywa się za pomocą interfejsu wiersza poleceń oraz specjalnego języka skryptowego przypominającego C. System jest kompatybilny z jądrami Linux od wersji 3.10 do 6.6-rc0.
W rozwój projektu zaangażowane są takie firmy jak Red Hat, IBM, Intel, Hitachi i Oracle. W katalogu przykładów znajduje się ponad 190 skryptów na różne okoliczności, odpowiednich do monitorowania rozdziału pamięci, operacji wejścia/wyjścia, operacji dyskowych, ruchu sieciowego (np. analiza pracy NFS), działaniem planisty zadań, obsługą przerwań, wykorzystaniem buforów systemowych, zakładaniem blokad, wykonywaniem wywołań systemowych, obsługą sygnałów itd.
Główne zmiany:
- Wsparcie dla gałęzi jądra 2.6.32, używanej w RHEL6, zostało zakończone. Testowanie SystemTap odbywa się teraz z jądrami 3.10 (RHEL7), 4.18 (RHEL8 + CentOS Stream 8), 5.14.0 (RHEL9 + CentOS Stream 9), 6.4 (Fedora 38), 6.5 (Fedora 39) i 6.6-rc (Fedora rawhide).
- Dodano wsparcie dla procesu debuginfod, umożliwiającego dynamiczne pobieranie informacji debugowania i metadanych o zainstalowanych plikach wykonywalnych.
- Dodano wsparcie dla danych debugowania w formacie DWARF5, które można wykorzystać w funkcji print_ubacktrace_fileline().
- W interfejsie (narzędziu stap) przy obecności serwerów debuginfod wprowadzono możliwość użycia masek przy określaniu docelowych procesów, na przykład, stap -e 'probe debuginfod.process("/usr/*/curl").begin { log("hi")}.' Ulepszono szczegółowość informacji o procesach w liście wyświetlanym przy użyciu opcji '-L' razem z wieloma '-v'.
- W backendzie zwiększono wydajność rejestrowania uprobe i przyspieszono uruchamianie modułu jądra. Zaproponowano szybszy i bardziej niezawodny system przesyłania wiadomości między jądrem a przestrzenią użytkownika.
- Dodano makra, które są obsługiwane w czasie wykonywania: STP_TIMING_NSECS do uzyskania informacji o czasie sprawdzania w nanosekundach oraz STP_FORCE_STDOUT_TTY do przedefiniowania STP_STDOUT_NOT_ATTY.
Źródło: opennet.ru
