Новости и события » Hi-Tech » Выпуск strace 4.17

Выпуск strace 4.17

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

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

  • Оптимизирована фильтрация системных вызовов за счет уменьшения количества вызовов 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.

Магія східної кухні: особливості та традиції

Магія східної кухні: особливості та традиції

Східна кухня відома різноманіттям ароматів та смаків. Вона заснована на глибоких традиціях, історії та має особливості приготування. Звички формувалися впродовж багатьох століть під впливом різних культур та географічних особливостей. Вони присутні в кожній...

сегодня 15:32

Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх