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より前のカーネルではサポートされていません。