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

Состоялся релиз системы динамической трассировки SystemTap 3.3, предоставляющий для платформы Linux средства отладки, похожие на технологию DTrace. SystemTap позволяет организовать доскональное наблюдение за работающей Linux-системой, производить сбор статистики о работе приложений, профилирование и контроль системных вызовов. Управление производится через интерфейс командной строки и специальный Си-подобный язык сценариев. Система протестирована с ядрами Linux начиная с версии 2.6.32 и заканчивая 4.18-rc0.

В развитии проекта участвуют такие компании как Red Hat, IBM, Intel, Hitachi и Oracle. В каталоге примеров представлено 163 скрипта на все случаи жизни, подходящие для слежения за распределением памяти, вводом/выводом, дисковыми операциями, сетевым трафиком (например, анализ работы NFS), работой планировщика задач, обработкой прерываний, использованием системных буферов, установкой блокировок, выполнением системных вызовов, обработкой сигналов и т.п.

Основные новшества:

  • Расширены возможности бэкенда трассировки на базе подсистемы ядра eBPF: появилась поддержка контрольных проверок с использованием механизмов uprobes, perf counter и tracepoint. В контрольных проверках на базе eBPF обеспечена возможность выполнения циклов (только для проверок в пространстве пользователя), которые могут применяться например, для перебора элементов массивов;
  • В тапсетах (tapset) добавлена начальная поддержка платформы MIPS;
  • Runtime и тапсеты портированы для ядер Linux, вплоть до версии 4.17;
  • В Systemtap runtime добавлена возможность обработки некоторых побочных проблем, возникших из-за добавления в ядро защиты от атак Meltdown и Spectre, таких как скрытие и перемещение указателей. В runtime также добавлено насколько исправлений, связанных с низкоуровневой обработкой блокировок, решающих проблемы на системах с большим числом CPU;
  • Во фронтэнде (утилите stap) реализован новый режим «stap —example FOO.stp» для поиска примеров сркиптов, входящих в поставку SystemTap. Также переработана опция «stap —sysroot /PATH», которая теперь лучше подходит для окружений кросс-компиляции;
  • Добавлен новый скрипт capture_ssl_master_secrets.stp с примером захвата SSL/TLS сессионных ключей gnutls и openssl для дешифрования трафика (перехватывает обработчики tls1_generate_master_secret и generate_normal_master в libssl.so и libgnutls.so).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.