Доступен (https://lists.strace.io/pipermail/strace-devel/2018-June/008...) выпуск strace 4.23 (https://strace.io/), утилиты для диагностики и отладки программ для ОС, использующих ядро Linux. Утилита позволяет отслеживать и (начиная с версии 4.15) вмешиваться в процесс взаимодействия программы и ядра, включая происходящие системные вызовы, возникающие сигналы и изменения состояния процесса. Для своей работы strace использует механизм ptrace (http://man7.org/linux/man-pages/man2/ptrace.2.html). Начиная с версии 4.13, формирование выпусков программы синхронизировано с выходом новых версий Linux. Код проекта распространяется (https://gitlab.com/strace/strace) под лицензией BSD.
Основные изменения (https://raw.githubusercontent.com/strace/strace/master/NEWS):
- 64-битные системные вызовы (например, readv (http://man7.org/linux/man-pages/man2/readv.2.html)), вызываемые в x32 ABI, теперь снабжаются суффиксом «#64» вместо ранее используемого префикса «64:». В отличие от старого, новый формат имени может быть использован при спецификации системных вызовов в аргументах командной строки.- Изменён формат вывода номера ошибки: теперь errno всегда печатается как «-1 ECONST (Error description)» для известных номеров ошибок и как «-1 (errno 123)» для неизвестных, вне зависимости от квалификатора -e raw. Для печати номеров известных номеров ошибок можно использовать опцию -X raw.- Недоступные адреса внутри массивов теперь печатаются как комментарии ([value1, value2, ... /* 0xbadc0ded */] вместо [value1, value2, 0xbadc0ded]).- Добавлена поддержка использования libdw (https://sourceware.org/elfutils/) для печати стеков вызовов (опция -k).- Добавлена опция -X для управления форматом вывода именованных констант (Debian bug #692915 (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=692915)).- Добавлена возможность указания ABI при задании системного вызова (например, -e raw=open@x32,inotify_init@64,statx@32).- Добавлена поддержка инжектирования системных вызовов без побочных эффектов вместо инжектирования некорректного системного вызова (-e inject=SET:syscall=; это может быть полезно в случае наличия фильтров seccomp (http://man7.org/linux/man-pages/man2/seccomp.2.html), которые убивают приложения при вызове системных вызовов, не входящих в белый список).- Улучшена поддержка воспроизводимой сборки (Debian bug #896016 (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=896016)).- Добавлена поддержка декодирования команд BPF_PROG_QUERY и BPF_RAW_TRACEPOINT_OPEN системного вызова bpf (http://man7.org/linux/man-pages/man2/bpf.2.html).- Добавлена поддержка декодирования команд ioctl (http://man7.org/linux/man-pages/man2/ioctl.2.html) INOTIFY_IOC_SETNEXTWD и PERF_EVENT_IOC_*.- Добавлена поддержка декодирования опций PR_GET_SPECULATION_CTRL и PR_SET_SPECULATION_CTRL системного вызова prctl (http://man7.org/linux/man-pages/man2/prctl.2.html).- Улучшено декодирование системных вызовов bpf (http://man7.org/linux/man-pages/man2/bpf.2.html), getsockopt (http://man7.org/linux/man-pages/man2/getsockopt.2.html), setsockopt (http://man7.org/linux/man-pages/man2/setsockopt.2.html) и socket (http://man7.org/linux/man-pages/man2/socket.2.html).- Улучшено декодирование протоколов netlink NETLINK_KOBJECT_UEVENT и NETLINK_ROUTE.- Улучшено декодирование команд ioctl (http://man7.org/linux/man-pages/man2/ioctl.2.html) BTRFS_*, FS_IOC_*, SIOCGIFHWADDR и SIOCSIFHWADDR.- Улучшено декодирование адресов сокетов AF_BLUETOOTH.- Реализовано декодирование системного вызова io_pgetevents (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...).- Системные вызовы без побочных эффектов помечены как %pure на MIPS.
URL: https://lists.strace.io/pipermail/strace-devel/2018-June/008...
Новость: https://www.opennet.dev/opennews/art.shtml?num=48783