A.7. strace の変更点
Red Hat Developer Toolset 11.0 には strace 5.13 が同梱されています。
以下の機能は、Red Hat Developer Toolset の以前のリリース以降に追加または変更されています。
動作の変更
変更された
%processクラスには、プロセスのライフサイクル (作成、実行、終了) に関連するシステムコールが含まれています。-
新しい呼び出し:
kill、tkill、tgkill、pidfd_send_signal、およびrt_sigqueueinfo -
削除された呼び出し:
arch_prctlおよびunshare
-
新しい呼び出し:
改良
-
新しい
-n(--syscall-number) オプションは、システムコール番号を出力します。 -
新しい
--seccontext=fullオプションは、SELinux コンテキストを表示します。 -
Poke インジェクションが実装され、
--inject=SET:poke_enter=と--inject=SET:poke_exit=の 2 つの新しいオプションが追加されました。 - IBM POWER アーキテクチャーでは、System Call Vectored (SCV) ABI サポートが追加されました。
-
libdwベースのスタックトレースは、ネイティブ以外のパーソナリティーに対して有効になります。 - Netlink データの出力方法が整理されました。
-
close_range、epoll_pwait2、faccessat2、landlock_add_rule、landlock_create_ruleset、landlock_restrict_self、mount_setattr、およびprocess_madviseのシステムコールのデコードが実装されました。 -
io_uring_setup、membarrier、perf_event_open、およびpidfd_openのシステムコールのデコードが強化されました。 -
GPIO_*およびTEE_*ioctlコマンドのデコードが実装されました。 -
FS_IOC_FSGSETXATTR、FS_IOC_GSETFLAGS、FS_IOC32_GSETFLAGS、LOOP_CONFIGURE、SIOCADDMULTI、SIOCDELMULTI、SIOCGIFENCAP、SIOCOUTQNSD、SIOCSIFENCAP、SIOCSIFHWBROADCAST、UBI_IOCRPEB and UBI_IOCSPEB、V4L2_BUF_TYPE_META_CAPTURE、V4L2_BUF_TYPE_META_OUTPUT、andVIDIOC_QUERY_EXT_CTRLのioctlコマンドのデコードが実装されました。 -
PTRACE_GETREGSETおよびPTRACE_SETREGSETptraceリクエストのNT_PRSTATUSおよびNT_FPREGSETregset のデコードが実装されました。 -
PTRACE_GETREGS、PTRACE_GETREGS64、PTRACE_SETREGS、PTRACE_SETREGS64、PTRACE_GETFPREGS、およびPTRACE_SETFPREGSなど、ptraceリクエストのregs引数のデコードが実装されています。 -
IPC_INFOおよびMSG_INFOmsgctlシステムコールコマンドのstruct msginfo引数のデコードが実装されました。 -
MSG_STATおよびMSG_STAT_ANYmsgctlシステムコールコマンドのstruct msqid_ds引数のデコードが実装されました。 -
IPC_INFOおよびSEM_INFOsemctlシステムコールコマンドのstruct seminfo引数のデコードが実装されました。 -
IPC_SET、IPC_STAT、SEM_STAT、およびSEM_STAT_ANYsemctl システムコールコマンドのstruct semid_ds引数のデコードが実装されました。 -
IPC_INFOshmctlシステムコールコマンドのstruct shminfo引数のデコードが実装されました。 -
SHM_INFOshmctlシステムコールコマンドのstruct shm_info引数のデコードが実装されました。 -
SHM_STATおよびSHM_STAT_ANYshmctlシステムコールコマンドのstruct shmid_ds引数のデコードが実装されました。 -
IFLA_BRPORT_*netlink 属性のデコードが更新され、Linux 5.12 カーネルに一致するようになりました。 -
*_MAGIC、ALG_*、AUDIT_*、BPF_*、BTRFS_*、CAP_*、CLOSE_RANGE_*、DEVCONF_*、ETH_*、FAN_*、IFLA_*、INET_DIAG_*、IORING_*、IPV6_*、IP_*、KEXEC_*、KEYCTL_*、KEY_*、KVM_*、LOOP_*、MDBA_*、MEMBARRIER_CMD_*、MPOL_*、MS_*、MTD_*、NDA_*、NFT_MSG_*、NLMSGERR_*、NT_*、PR_*、PTP_PEROUT_*、PTRACE_*、RESOLVE_*、RTAX_*、RTA_*、RTC_*、RTM_*、RTNH_*、RTPROT_*、SCTP_*、SEGV_*、SO_*、STATX_*、ST_*、SYS_*、TCA_*、TRAP_*、UFFDIO_*、UFFD_*、およびV4L2_*の定数リストが更新されました。 -
ioctlコマンドのリストは、Linux 5.13 カーネル更新からのリストと一致するように更新されています。 RHEA-2022:4635 アドバイザリーのリリースにより、strace は、実際の SELinux コンテキストと SELinux コンテキストデータベースから抽出された定義との間の不一致を表示できるようになりました。
strace の既存の
--secontextオプションは、mismatchパラメーターで拡張されました。このパラメーターを使用すると、不一致の場合にのみ、実際のコンテキストとともに期待されるコンテキストを出力できます。出力は、2 つの感嘆符 (!!) で区切られます。最初は実際のコンテキスト、次に期待されるコンテキストです。以下の例では、コンテキストのユーザー部分が不一致であるため、full,mismatchパラメーターは、実際のコンテキストとともに期待される完全なコンテキストを出力します。ただし、単独のmismatchを使用する場合は、コンテキストのタイプ部分のみをチェックします。コンテキストのタイプ部分が一致するため、予期されるコンテキストは出力されません。Copy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux コンテキストの不一致は、SELinux に関連するアクセス制御の問題を引き起こすことがよくあります。システムコールトレースに出力された不一致により、SELinux コンテキストの正確性のチェックが大幅に迅速化されます。システムコールトレースは、アクセス制御チェックに関する特定のカーネルの動作を説明することもできます。
バグ修正
-
SIOCGIFINDEX、SIOCBRADDIF、およびSIOCBRDELIFioctlコマンドのデコードが修正されました。 -
clock_gettime64、clock_settime64、clock_adjtime64、およびlock_getres_time64システムコールが%clockトレースクラスに追加されました。 -
statxシステムコールが%fstatトレースクラスに追加されました。 -
以前は、strace は、ネットワークインターフェイス名の出力に不十分なバッファーサイズを使用していました。これにより、
-xxモードで 4 文字を超える名前など、引用符を必要とするインターフェイス名を出力しようとすると、アサーションが発生しました。RHEA-2022:4635 アドバイザリーのリリースにより、このバグは修正されました。