Microsoftは2019年5月のフィーチャーアップデート版でWindows 10にDTraceの機能を導入した。DTraceは動的にカーネルやアプリケーションの挙動をリアルタイムにトラッキングする機能の1つ。複雑になったカーネルやユーザランドアプリケーションの分析や解析などを行うことができる強力な機能で、もともとSolarisで開発され、現在ではFreeBSDなどほかのオペレーティングシステムでも活用されている。

Microsoftは2020年1月14日(米国時間)に公開したWindows 10 Insider Preview Build 19041.21において、DTrace機能を大幅に強化した。「DTrace on Windows – 20H1 updates - Microsoft Tech Community - 1127929」においてその変更内容を伝えている。

まず、これまでWindowsでDTraceを有効にするにはカーネルデバッガが必須だった。しかし、Build 19041.21ではこの要件が不要になっている。仮想ベースのセキュリティ機能(VBS: Virtualization-based Security)を使って動的トレースポイントを挿入するようになったため、カーネルデバッガの機能を使う必要がなくなったためだ。これでPatchGuardの機能を無効化することなく、DTraceの機能が利用できるようになる。

また、このバージョンからはこれまでカーネルに限定されていたスタックウォーク機能がユーザモードでも使用できるようになった。また、ライブダンプ機能の追加、ETWトレース機能の追加、ARM64の実験的なサポート追加などが行われている。

  • ARM64におけるDTraceの使用例 - 資料: Microsoft提供

    ARM64におけるDTraceの使用例 - 資料: Microsoft

DTraceは一般ユーザーが利用する機能ではないが、カーネル開発者にとっては必須とも言える機能の1つ。デバッグ用のコードを自ら挿入することなくリアルタイムに内部トレースが可能になり、これまで分析や解析が難しかった部分を包括的に調査できるという特徴がある。