Выпуск strace 4.18

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

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

  • Реализован ряд улучшений в поддержке декодирования протокола netlink (см. также). Работы по улучшению поддержки декодирования протокола netlink проводятся в рамках проекта Google Summer of Code 2017 «Netlink socket parsers», являющегося продолжением одноимённого проекта 2016 года.
  • Добавлена поддержка декодирования сообщений SCM_TIMESTAMP*.
  • Обновлены списки значений констант ARPHRD_*, KEYCTL_*, NDIAG_SHOW_*, RTM_*, SCM_*, SCTP_*, SO_*, V4L2_* и используемых в системном вызове prctl () ARCH_*.
  • Исправлен сброс маски заблокированных сигналов у strace в интерактивном режиме (-I2), теперь заблокированные сигналы остаются таковыми на всём протяжении работы strace.
  • Исправлен сброс обработчика сигнала SIGCHLD на обработчик по умолчанию в трассируемых процессах.
  • При завершении трассируемого процесса по сигналу, заблокированному в strace, данный сигнал разблокируется, дабы strace завершился по тому же сигналу.
  • Исправление сборки на старых ядрах на архитектуре mips.
  • Исправление сборки на архитектурах aarch64 и tile с glibc >= 2.26.
  • Исправление сборки на архитектурах arc и nios2 после изменений, связанных с добавлением поддержки декодирования системного вызова rt_sigreturn () в strace 4.17.

Также можно отметить работы, которые выполняются в рамках программы Google Summer of Code 2017 (помимо вышеотмеченного проекта JingPiao Chen по поддержке декодирования протокола netlink):

  • Поддержка pcap-like синтаксиса для задания фильтров системных вызовов (Николай Марчук)
  • Поддержка встраивания Lua в механизмы фильтрации и подмены системных вызовов (Виктор Крапивенский)
  • Разработка утилиты, позволяющей получать справочную информацию о системных вызовах (Эдгар Казиахмедов)

© OpenNet