Выпуск 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