Опубликован релиз системы динамической трассировки SystemTap 5.0, предоставляющий для платформы Linux средства отладки, похожие на технологию DTrace. SystemTap позволяет организовать доскональное наблюдение за работающей Linux-системой, производить сбор статистики о работе приложений, профилирование и контроль системных вызовов. Управление производится через интерфейс командной строки и специальный Си-подобный язык сценариев. Система совместима с ядрами Linux начиная с версии 3.10 и заканчивая 6.6-rc0.
В развитии проекта участвуют такие компании как Red Hat, IBM, Intel, Hitachi и Oracle. В каталоге примеров представлено более 190 скриптов на различные случаи жизни, подходящие для слежения за распределением памяти, вводом/выводом, дисковыми операциями, сетевым трафиком (например, анализ работы NFS), работой планировщика задач, обработкой прерываний, использованием системных буферов, установкой блокировок, выполнением системных вызовов, обработкой сигналов и т.п.
Основные изменения:
- Прекращена поддержка ветки ядра 2.6.32, используемой в RHEL6. Тестирование SystemTap теперь производится с ядрами 3.10 (RHEL7), 4.18 (RHEL8 + CentOS Stream 8), 5.14.0 (RHEL9 + CentOS Stream 9), 6.4 (Fedora 38), 6.5 (Fedora 39) и 6.6-rc (Fedora rawhide).
- Добавлена поддержка процесса debuginfod для динамического получения отладочной информации и метаданных об установленных исполняемых файлах.
- Добавлена поддержка отладочных данных в формате DWARF5, которые можно использовать в функции print_ubacktrace_fileline().
- Во фронтэнде (утилите stap) при наличии серверов debuginfod реализована возможность использования масок при определении целевых процессов, например, stap -e ‘probe debuginfod.process(“/usr/*/curl”).begin { log(“hi”)}’. Улучшена детализация информации о процессах в списке, выводимом при использовании опции “-L” в сочетании с несколькими “-v”.
- В бэкенде повышена производительность регистрации uprobe и ускорен запуск модуля ядра. Предложена более быстрая и надёжная система передачи сообщений между ядром и пространством пользователя.
- Добавлены обрабатываемые во время выполнения макросы: STP_TIMING_NSECS для получения сведений о времени проверки в наносекундах и STP_FORCE_STDOUT_TTY для переопределения STP_STDOUT_NOT_ATTY.