2.0.0 (2020年3月10日)
スタンドアロンのユーザー・スペース実装の最初のリリース。
これは、機能が制限されたプレリリースです。
作業コンポーネント:
-
D言語全体(集積を除く)。 有効なD節は、同等のBPFプログラムにコンパイルされます。
-
DTraceコア機能の大部分が実装されており、ほぼ完全なコンパイラ実装(述語を含む)、プロバイダAPI、プローブ管理およびLinuxトレース統合が提供されます。
-
プリコンパイルされたBPF関数ライブラリのサポートが追加されました。 これは、様々なD言語構造(グローバルおよびTLS変数アクセス、文字列操作など)およびDサブルーチンの実装に使用されます。 この機能では、GCCおよびbinutilsでクロス・コンパイル・ツールとしてBPFサポートを使用します。 BPF関数はDTraceビルド時にコンパイルされるため、クロス・コンパイル・ツールへのランタイム依存関係はありません。
-
BPF検証機能の出力を報告するためのサポートが追加されました。 コンパイルされたDスクリプトがBPFプログラムとしてカーネルにロードされると、BPF検証機能が静的なコード解析を実行して、プログラムの安全性を確保します。 この分析が失敗すると、出力が生成され、DTraceによってこの出力がユーザーに報告されます。
-
カーネルがこの情報を/proc/kallsyms (または/proc/kallmodsyms)で提供する場合、関数境界トレース(FBT)は、モジュール別にグループ化された関数でプローブします(モジュールがコンパイルされているかどうか、ロード可能かどうかに関係なく)。
-
型付きプローブ引数をサポートするシステム・コールのentryおよびreturnプローブ(systraceプロバイダ)。
-
静的定義トレース(SDT)は、Linuxのトレースポイントに基づいてプローブします。型付きプローブ引数がサポートされます。
-
トレース・データ・バッファ管理コードが、トレース・データを記録するためにBPFで使用されるパフォーマンス・イベント・リング・バッファを使用するように修正されました。
-
DTraceテスト・スイートは、このDTraceの実装について、現在の開発状態に合格することが予想されるテストを反映するように更新されています。 また、さまざまなテストが改善され、より堅牢になり、テスト対象のものに集中できるようになりました。