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