strace 4.17

Четверг, 25 мая 2017 г.

Следите за нами в ВКонтакте, Телеграм'e и Twitter'e

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

Основные изменения этого релиза:

Оптимизирована фильтрация системных вызовов за счёт уменьшения количества вызовов ptrace() для системных вызовов, отображение которых отключено.
Добавлена поддержка декодирования системного вызова statx (2), появившегося в Linux 4.11.
Добавлена поддержка декодирования команд ioctl (2), связанных с операциями над пространствами имён.
Для ioctl подсистемы Video4Linux добавлена поддержка декодирования не декодировавшихся ранее типов V4L2_BUF_TYPE_*, а также команд VIDIOC_S_TUNER и VIDIOC_G_TUNER.
Реализована поддержка декодирования сообщений NLMSG_ERROR протокола netlink.
Улучшено декодирование системного вызова sched_setattr (2), команды BPF_PROG_ATTACH системного вызова bpf (2), некорректных аргументов команд подсистемы device mapper системного вызова ioctl (2).
Классы системных вызовов, указываемые в аргументе -e trace= (такие как process, file, network, ipc, desc, memory), теперь должны начинаться со знака %: -e trace=%memory. Старый синтаксис без указания знака процента (-e trace=memory) всё так же поддерживается, но теперь считается устаревшим.
Добавлены новые классы системных вызовов для указания их фильтрации: %stat (варианты системного вызова stat (2) на разных архитектурах), %lstat (варианты системного вызова lstat (2)), %fstat (варианты системных вызовов fstat (2) и fstatat (2)), %%stat (все вызовы, возвращающие статусную информацию о файле, включая statx (2)), %statfs (варианты системного вызова statfs (2)), %fstatfs (варианты системного вызова fstatfs (2)), %%statfs (все вызовы, возвращающие статусную информацию о файловой системе, включая ustat (2)).
Добавлена возможность указания регулярного выражения для задания множества фильтруемых системных вызовов, например, -e trace=/sched_.*.
Добавлена возможность игнорирования ошибки, возникающей в случае, если множество системных вызовов, соответствующее указанному фильтру, пустое, например -e trace=?statx на архитектурах, которые не поддерживают системный вызов statx (2).
Добавлена поддержка декодирования маски сигналов в системном вызове rt_sigreturn (2) для архитектур alpha, arc, arm, avr32, bfin, cris, hppa, m68k, metag, microblaze, mips, nios2, or1k, powerpc, powerpc64, riscv, sh, sh64, sparc, sparc64, tile, x86 и xtensa.
Исправлено декодирование аргумента флагов в системных вызовах preadv2(2) и pwritev2(2) на ABI x32.
Исправлено декодирование старого варианта системного вызова sigsuspend (2) на архитектурах alpha, cris, mips, powerpc, powerpc64, sh, sh64, sparc и sparc64.
Исправлено декодирование системных вызовов sgetmask (2) и ssetmask (2) на 64-битных архитектурах.
Обойдена ошибка компилятора GCC, приводящая к генерации некорректного кода на ядрах для архитектуры aarch64, вследствие которой третий аргумент системного вызова sched_getattr (2) не вполне 32-битный.

Также, среди изменений, вошедших в предыдущий релиз 4.16, можно отметить следующие:

В механизм подмены системного вызова добавлена поддержка указания возвращаемого значения (-e inject=SET:retval=) и возбуждения сигнала (-e inject=SET:signal=)
Добавлена поддержка декодирования системного вызова ustat (2).
Реализована поддержка декодирования команд BPF_OBJ_PIN, BPF_OBJ_GET, BPF_PROG_ATTACH и BPF_PROG_DETACH системного вызова bpf (2).
Существенно доработана поддержка декодирования команд SCSI системного вызова ioctl (2): добавлена поддержка декодирования всех не доекодировавшихся ранее команд SG_*, а также структур sg_io_hdr и sg_io_v4.
Улучшено декодирование системных вызовов get_robust_list (2), getrandom (2), io_submit (2), set_robust_list (2).
Исправлено декодирование структур ifconf, ifreq, and loop_info для ABI, отличающихся от ABI ядра.
Исправлено декодирование системных вызовов kexec_file_load (2), mprotect (2), pkey_mprotect (2), prctl (2), preadv (2)/preadv2(2), pwritev (2)/pwritev2(2) на ABI x32.

>>> Полный список изменений

>>> Сайт проекта (sourceforge)

>>> Репозиторий (sourceforge)

>>> Сообщение в списке рассылки

Следите за нами в ВКонтакте, Телеграм'e и Twitter'e


Просмотров: 819
Рубрика: Hi-Tech


Архив новостей / Экспорт новостей

Ещё новости по теме:

RosInvest.Com не несет ответственности за опубликованные материалы и комментарии пользователей. Возрастной цензор 16+.

Ответственность за высказанные, размещённую информацию и оценки, в рамках проекта RosInvest.Com, лежит полностью на лицах опубликовавших эти материалы. Использование материалов, допускается со ссылкой на сайт RosInvest.Com.

Архивы новостей за: 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003