Se ha publicado la versión 5.0 del sistema de trazado dinámico SystemTap, que proporciona herramientas de depuración para la plataforma Linux similares a la tecnología DTrace. SystemTap permite realizar una observación detallada de un sistema Linux en funcionamiento, recolectar estadísticas sobre el rendimiento de las aplicaciones, realizar perfiles y controlar llamadas al sistema. La gestión se realiza a través de una interfaz de línea de comandos y un lenguaje de scripts parecido a C. El sistema es compatible con núcleos de Linux desde la versión 3.10 hasta la 6.6-rc0.
El desarrollo del proyecto cuenta con la participación de empresas como Red Hat, IBM, Intel, Hitachi y Oracle. En el catálogo de ejemplos se presentan más de 190 scripts para diversas situaciones, adecuados para el seguimiento de la distribución de memoria, entradas/salidas, operaciones de disco, tráfico de red (por ejemplo, análisis del funcionamiento de NFS), trabajo de planificadores de tareas, manejo de interrupciones, uso de buffers del sistema, establecimiento de bloqueos, ejecución de llamadas al sistema, manejo de señales, etc.
Principales cambios:
- Se ha descontinuado el soporte para la rama del núcleo 2.6.32 utilizada en RHEL6. Las pruebas de SystemTap ahora se realizan con núcleos 3.10 (RHEL7), 4.18 (RHEL8 + CentOS Stream 8), 5.14.0 (RHEL9 + CentOS Stream 9), 6.4 (Fedora 38), 6.5 (Fedora 39) y 6.6-rc (Fedora rawhide).
- Se ha añadido soporte para el proceso debuginfod para la obtención dinámica de información de depuración y metadatos sobre archivos ejecutables instalados.
- Se ha añadido soporte para datos de depuración en formato DWARF5, que se pueden utilizar en la función print_ubacktrace_fileline().
- En el frontend (utilidad stap) se ha implementado la posibilidad de usar máscaras al definir procesos objetivo cuando debuginfod está disponible. servidores Por ejemplo, stap -e ‘probe debuginfod.process("/usr/*/curl").begin { log("hi")}. Se ha mejorado la granularidad de la información sobre procesos en la lista mostrada al usar la opción "-L" en combinación con varias "-v".
- En el backend, se ha mejorado el rendimiento del registro de uprobe y se ha acelerado el inicio del módulo del núcleo. Se ha propuesto un sistema de mensajería más rápido y confiable entre el núcleo y el espacio de usuario.
- Se han añadido macros que se procesan en tiempo de ejecución: STP_TIMING_NSECS para obtener información sobre el tiempo de verificación en nanosegundos y STP_FORCE_STDOUT_TTY para anular STP_STDOUT_NOT_ATTY.
Fuente: opennet.ru
