A.5. strace の変更点
Red Hat Developer Toolset 10.0 には strace 5.7 が同梱されています。
以下の機能は、Red Hat Developer Toolset の以前のリリース以降に追加または変更されています。
動作の変更
%process
クラスに、プロセスのライフサイクル (再作成、実行、終了) に関連するシステムコールが含まれるようになりました。-
kill
、tkill
、tgkill
、pidfd_send_signal
、rt_sigqueueinfo
が追加されました。 -
arch_prctl
およびunshare
が削除されました。
-
-
不明なトレースに関するメッセージは、strace の quietness 設定
-q
(--quiet
) の対象になるようになりました。 -
新しい警告が追加されました。これは、
-A
(--output-append-mode
) オプションが-o
(--output
) なしで使用されたり、-S
(--summary-sort-by
) オプションが-c
/-C
(--summary-only
/--summary
) なしで実行されたときに起こります。
改良
short オプションはすべて長いオプションエイリアスを持つようになりました。この変更により、以下の改善が行われています。
-
-I
(--interruptible
) オプションに人間が判読できる設定を使用する機能。 -
-e quiet
(--quiet
) オプションのエイリアス) を使用して特定のメッセージをサイレンスにする機能 (-q
オプションのエイリアス)。これには、パス解決メッセージや、execve
によって置き換えられるプロセスに関するメッセージなど、以前に非表示にできないメッセージが含まれます。 -
-y
オプションのエイリアスである-e decode-fds
(--decode-fds
) 修飾子を使用して選択した柔軟なデータ (FD) デコード機能を指定する機能。 -
絶対タイムスタンプ、相対タイムスタンプ、およびシステムコール時間の出力の精度を設定する機能。
--absolute-timestamps
、--relative-timestamps
、--syscall-times
オプションをそれぞれ使用します。
-
システムコールのリターンステータスフィルタリングは、
-e status=set
オプションとそのエイリアスを使用して実装されています。-
この
-z
(--successful-only
) オプションでは、システムコールの出力が成功したシステムコールのみに制限されます。 -
この
-Z
(--failed-only
) オプションでは、システムコールの出力が失敗したシステムコールのみに制限されます。
-
この
-
PID (プロセス ID) 名前空間変換の
--pidns-translation
オプションが追加されました。この改善により、Fedora bug BZ#1035433 に対応しています。 -
seccomp-BPF を使用して、フィルターされたシステムコールのトレースのみを停止できるようになりました。この機能を有効にするには、
--seccomp-bpf
オプションを使用します。 -
-D
(--daemonize
) オプションへの 2 つの拡張機能が実装されました。これらは、strace 別のプロセスグループ (-DD
または--daemonize=pgroup
) およびセッション (-DDD
または--daemonize=session
) に移動します。 -
システムコールの改ざん式の
when=
サブ表現における間隔指定が実装されました。 -
-U
(--summary-columns
) オプションを使用して、呼び出しサマリー出力で表示される列のセットを選択できるようになりました。 - すべてのサマリー列でソートできるようになりました。
- システムコール数の統計が強化されました。オーバーヘッドがコールごとに適用されるようになりました。
- コールサマリーの出力で、最小および最大呼び出し時間に関する情報を表示できるようになりました。
- システムコールの遅延インジェクションおよびオーバーヘッド値は、時間測定単位接尾辞とともに提供でき、IEEE 754 の浮動小数点形式で提供できるようになりました。詳細は、strace の man ページの「Time specification format description」セクションを参照してください (scl enable devtoolset-10 - man strace コマンドで利用可能)。
-
-yy
(--decode-fds=pidfd
) モードでのプロセスファイル記述子に関連付けられた PID の出力が実装されました。 -
シンボルツーアドレスキャッシュを実装することで、
libdw-based
スタックトレース出力のパフォーマンスが向上しました。 -
システムクロックの変更に関するシステムコールの追跡を行うための
-e trace=%clock
オプションが追加されました。 -
プロセス認証情報に関連するシステムコールを追跡するために、
-e trace=%creds
オプションが追加されました。 -
以下のシステムコールのデコードが実装されました。
clone3
、fsconfig
、fsmount
、fsopen
、fspick
、open_tree
、openat2
、move_mount
、pidfd_getfd
、およびpidfd_open
。 -
以下のシステムコールのデコードが改良されました。
arch_prctl
、bpf
、clone
、inotify_init
、io_cancel
、io_submit
、io_uring_register
、io_uring_setup
、keyctl
、mbind、
perf_event_open
、prctl
、s390_sthyi、
sched_getattr
、sched_setattr
、set_mempolicy
、syscall
、およびsyslog
。 -
以下の
ioctl
コマンドによるデコードが実装されました。PTP_CLOCK_GETCAPS2
、PTP_EXTTS_REQUEST2
、PTP_PEROUT_REQUEST2
PTP_ENABLE_PPS2
、PTP_SYS_OFFSET2
、RTC_VL_READ
、およびWDIOC_*
。 -
HIDIOCGRAWUNIQ()
ioctl
コマンド番号出力が実装されました。 -
NETLINK_ROUTE
netlink プロトコルのデコードが強化されました。 -
以下の netlink 属性のデコードが実装されています。
IFLA_*
、TCA_ACT_FLAGS
、TCA_STATS_PKT64
、およびUNIX_DIAG_UID
。 -
以下の定数の一覧が更新されました。
AT_*
、AUDIT_*
、BPF_*
、BTRFS_*
、CAN_*
、CLONE_*
、ETH_*
、FAN_*
GRND_*
、IFLA_*
、IORING_*
、IPPROTO_*
、KEXEC_*
、KEY_*
、KEYCTL_*
、KVM_*
、LWTUNNEL_*
、MADV_*
、*_MAGIC
、MAP_*
、MPOL_*
、MREMAP_*
、MSG_*
、P_*
、PERF_*
、PPC_PTRACE_*
、PR_*
、PTP_*
、RTM_F_*
、SCHED_*
、SCTP_*
、SECCOMP_*
、SO_*
、STATX_*
、TCP_*
、TIPC_*
、UFFDIO_*
、V4L2_*
、およびXDP_*
。 -
strace の man ページと、strace
--help
コマンドの出力が強化されました。
バグ修正
-
statx
システムコールが%fstat
トレースクラスに追加されました。 -
getdents
およびgetdents64
システムコールのデコードは、ディレクトリーエントリーが多数返される場合に修正されました。 -
openat2
システムコールのパストレースが修正されました。 -
VIDIOC_*
ioctl
出力フォーマットのさまざまなマイナーな修正が加えられました。 -
strace がスタックトレースの
libdw
バックエンドを使用するように設定されている場合、スタックトレースプリントは初期のシステム呼び出しに対して修正されています。この改善により、Fedora bug BZ#1788636 に対応しています。 -
NDA_LLADDR
netlink neighbor table 属性のデコードが修正されました。 -
BPF_PROG_LOAD
BPF システムコールコマンドのデコードが修正されました。 -
evdev
ioctl
ビットセット のデコードが修正されました。