2.0.0-1.12 (2023年2月27日)

スタンドアロンのユーザー・スペース実装の12番目のエラータ。

これは、機能が制限されたプレリリースです。

新機能:

  • bcopy()サブルーチンでは、その最初の引数(ソース・アドレス)をalloca()'dメモリー領域にすることが禁止されなくなりました。この制限事項は文書に記載されていますが、DTraceにおいて施行されたことがなく、実用的な理由がありません。

  • clear()およびtracemem()アクションが実装されました。

  • switchrateおよびaggrateオプションが実装されました。

  • cpcおよびprocプロバイダが実装されました。

  • copyout()およびcopyoutstr()サブルーチンが実装されました。

  • uregs[]組込み変数が実装されました。

バグ修正:

  • 最大strtabサイズが大きくなりSSIZE_MAXになりました。

  • プローブ引数の情報は、プローブごとに1回のみ取得されます。

  • alloca()'dメモリーでの文字列値の扱いが修正されました。

  • basename()dirname()strchr()strrchr()inet_ntoa()サブルーチンは、任意のアドレス・ポインタの使用を十分にサポートするように更新されました。

  • copyin()の戻り値が、scratchmem (alloca()'dメモリーへのポインタのネイティブ表現)への有効なオフセットになりました。

  • profile-*およびtick-*プローブのarg0およびarg1プローブ引数が修正されました。(arg2引数はまだ実装されていません。)

  • bcopy()に対する引数の評価順序が修正されました。

  • スカラー配列アクセスの実行時境界チェックが実装されました。

内部変更:

  • プリコンパイルされたBPF関数ライブラリを構築するための、正しいアーキテクチャ依存ASMインクルード階層の選択が修正されました。

  • 安全でない可能性がある、printfスタイルの関数のコールがいくつか修正されました。

  • dtraceのマニュアルページがセクション8 (システム管理コマンド)に移動されました。

  • libdtraceとコンシューマ・フロントエンドの間のエラー処理メカニズムが、非プローブ関連の問題に関するエラー報告が可能になるように修正されました。

  • copyinstr()サブルーチンが、一時文字列メカニズムを使用するように更新されました。

  • alloca()'dメモリーへのポインタ、およびDTrace管理対象メモリーへのポインタの追跡が改善され、それに対する明示的なテストがテストスイートに追加されました。

  • コード・ジェネレータでは、効率性のためにalloca()'dおよびDTrace管理対象メモリーへのポインタに間接的ロード命令が使用されるようになり、BPF検証機能でアクセス・チェックを実行できるようになりました。

テストスイートの変更:

  • copyin*()テストは、個別のトリガーを使用することで、より堅牢になりました。

  • 新機能の実装に対応するためと、いくつかのバグ修正のために、様々なテストがXFAILからPASSステータスに変わりました。

  • 様々なテストが改善されました。

  • 新しい様々なテストが追加されました。

既知の問題点:

  • uregs[]組込み変数は、5.15より前のカーネルではサポートされていません。