17.04.2024

Выпуск системы динамической отладки SystemTap 5.0

Опубликован релиз системы динамической трассировки 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.

Источник: https://www.opennet.ru/opennews/art.shtml?num=60051 Источник.