Доступен выпуск 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.
|