Выпуск strace 4.23

Доступен выпуск strace 4.23, утилиты для диагностики и отладки программ для ОС, использующих ядро Linux. Утилита позволяет отслеживать и (начиная с версии 4.15) вмешиваться в процесс взаимодействия программы и ядра, включая происходящие системные вызовы, возникающие сигналы и изменения состояния процесса. Для своей работы strace использует механизм ptrace. Начиная с версии 4.13, формирование выпусков программы синхронизировано с выходом новых версий Linux. Код проекта распространяется под лицензией BSD.

Основные изменения:

  • 64-битные системные вызовы (например, readv), вызываемые в x32 ABI, теперь снабжаются суффиксом »#64» вместо ранее используемого префикса »64:». В отличие от старого, новый формат имени может быть использован при спецификации системных вызовов в аргументах командной строки.
  • Изменён формат вывода номера ошибки: теперь errno всегда печатается как »-1 ECONST (Error description)» для известных номеров ошибок и как »-1 (errno 123)» для неизвестных, вне зависимости от квалификатора -e raw. Для печати номеров известных номеров ошибок можно использовать опцию -X raw.
  • Недоступные адреса внутри массивов теперь печатаются как комментарии ([value1, value2, … /* 0xbadc0ded */] вместо [value1, value2, 0xbadc0ded]).
  • Добавлена поддержка использования libdw для печати стеков вызовов (опция -k).
  • Добавлена опция -X для управления форматом вывода именованных констант (Debian bug #692915).
  • Добавлена возможность указания ABI при задании системного вызова (например, -e raw=open@x32, inotify_init@64, statx@32).
  • Добавлена поддержка инжектирования системных вызовов без побочных эффектов вместо инжектирования некорректного системного вызова (-e inject=SET: syscall=; это может быть полезно в случае наличия фильтров seccomp, которые убивают приложения при вызове системных вызовов, не входящих в белый список).
  • Улучшена поддержка воспроизводимой сборки (Debian bug #896016).
  • Добавлена поддержка декодирования команд BPF_PROG_QUERY и BPF_RAW_TRACEPOINT_OPEN системного вызова bpf.
  • Добавлена поддержка декодирования команд ioctl INOTIFY_IOC_SETNEXTWD и PERF_EVENT_IOC_*.
  • Добавлена поддержка декодирования опций PR_GET_SPECULATION_CTRL и PR_SET_SPECULATION_CTRL системного вызова prctl.
  • Улучшено декодирование системных вызовов bpf, getsockopt, setsockopt и socket.
  • Улучшено декодирование протоколов netlink NETLINK_KOBJECT_UEVENT и NETLINK_ROUTE.
  • Улучшено декодирование команд ioctl BTRFS_*, FS_IOC_*, SIOCGIFHWADDR и SIOCSIFHWADDR.
  • Улучшено декодирование адресов сокетов AF_BLUETOOTH.
  • Реализовано декодирование системного вызова io_pgetevents.
  • Системные вызовы без побочных эффектов помечены как %pure на MIPS.

© OpenNet