strace — утилита для диагностики и отладки программ для ОС, использующих ядро Linux. Она позволяет отслеживать и (начиная с версии 4.15) вмешиваться в процесс взаимодействия программы и ядра, включая происходящие системные вызовы, возникающие сигналы и изменения состояния процесса. Для своей работы strace использует механизм ptrace. Начиная с версии 4.13, формирование выпусков программы синхронизировано с выходом новых версий Linux.
Основные изменения:
- Добавлена поддержка compat personality для s390x (IBM z/Architecture).
- Добавлена поддержка (при сборке с
--with-libiberty
) demangling имён функций при выводе стека вызовов (опция-k
). - Добавлена справочная страница для команды
strace-log-merge(1)
. - Реализовано декодирование системных вызовов riscv_flush_icache(2), s390_guarded_storage(2), s390_pcio_mmio_read(2), s390_pci_mmio_write(2), s390_runtime_instr(2), s390_sthyi(2).
- Реализовано декодирование некоторых ioctl(2) команд KVM_*, обновлён декодер команды
DM_LIST_DEVICES
. - Улучшено декодирование системных вызовов get_thread_area(2), memfd_create(2), modify_ldt(2), perf_event_open(2), reboot(2), set_thread_area(2), shmget(2).
- Реализовано декодирование команд
BPF_PROG_TEST_RUN
,BPF_PROG_GET_NEXT_ID
,BPF_MAP_GET_NEXT_ID
,BPF_PROG_GET_FD_BY_ID
,BPF_MAP_GET_FD_BY_ID
,BPF_OBJ_GET_INFO_BY_FD
системного вызова bpf(2), улучшено декодирование командыBPF_MAP_CREATE
. - Улучшения в поддержке нескольких personality (syscall ABI):
- Теперь стало сложнее случайно собрать
strace
без поддержки декодирования дополнительных personality: в случае невозможности её сконфигурировать процесс конфигурации сборки теперь по умолчанию завершится ошибкой; поведение управляется посредством параметраconfigure
--enable-mpers=yes|no|check|m32|mx32
. - Требуемая версия
gawk
для сборки поддержки нескольких personality снижена с 4 до 3. - При невозможности корректного декодирования системных вызовов процесса в неподдерживаемой personality теперь выводится предупреждение.
- Информация о наличии поддержки корректного декодирования дополнительных personality теперь доступна в
strace -V
. - Исправлена поддержка нескольких personality при кросс-компиляции.
- Теперь стало сложнее случайно собрать
- Номера неизвестных системных вызовов теперь печатаются в шестнадцатеричном формате.
- Удалён нерабочий код поддержки архитектуры CRIS и режима IA-32 на архитектуре IA-64.
>>> Сайт проекта (SourceForge)
>>> Репозиторий (SourceForge, GitLab)
>>> Подробности