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_REQUEST2PTP_ENABLE_PPS2、PTP_SYS_OFFSET2、RTC_VL_READ、およびWDIOC_*。 -
HIDIOCGRAWUNIQ()ioctlコマンド番号出力が実装されました。 -
NETLINK_ROUTEnetlink プロトコルのデコードが強化されました。 -
以下の 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_LLADDRnetlink neighbor table 属性のデコードが修正されました。 -
BPF_PROG_LOADBPF システムコールコマンドのデコードが修正されました。 -
evdevioctlビットセット のデコードが修正されました。