DTrace は、管理者または開発者がユーザー モードまたはカーネル モードでシステムをリアルタイムに確認できる動的トレース フレームワークです。 DTrace には、トレース ポイントを動的に挿入できる C スタイルの高レベルで強力なプログラミング言語が備わっています。これらの動的に挿入されたトレース ポイントを使用すると、条件やエラーでフィルタリングしたり、ロック パターンを分析したり、デッドロックを検出したりするためのコードを作成できます。
Windows では、DTrace は Windows イベント トレーシング (ETW) を拡張します。ETW は静的であり、実行時にプログラムによってトレース ポイントを挿入する機能を提供しません。
dtrace.sys で使用されるすべての API と機能は、文書化された呼び出しです。
Microsoft は、さまざまなシステム監視の役割を実行できるようにする Windows 10 用の特別なドライバーを実装しました。このドライバーは Windows 10 バージョン 1903 に含まれます。また、現在 DTrace を使用するには、カーネル デバッガーを有効にして Windows を起動する必要があります。
移植された DTrace ツールのソース コードは GitHub で入手できます。ページにアクセスしてください Windows 上の DTraceGitHub の OpenDTrace プロジェクトの下にあるので、それを確認してください。
コンテンツ 隠れる Windows 10 で DTrace をセットアップする DTraceの使用Windows 10 で DTrace をセットアップする
機能を使用するための前提条件
- Windows 10 インサイダービルド18342以上
- でのみ利用可能x64Windows および 64 ビット プロセスのトレース情報のみをキャプチャします Windows Insider プログラムは有効そして設定済み有効な Windows Insider アカウントを使用している
- 詳細については、「設定」->「更新とセキュリティ」->「Windows Insider Program」にアクセスしてください。
説明書:
- BCD 構成セット:
- bcdedit /set dtrace on
- 新しい Insider ビルドにアップグレードする場合は、bcdedit オプションを再度設定する必要があることに注意してください。
- これにより、DTrace が機能するために必要なユーザー モード コンポーネント、ドライバー、追加機能オンデマンド パッケージがインストールされます。
- オプション:PATH環境変数含めるC:プログラム ファイルDTrace
- set PATH=%PATH%;'C:Program FilesDTrace'
- 設定シンボルパス
- シンボルをローカルにキャッシュするための新しいディレクトリを作成します。例: mkdir c:symbols
- セット_NT_SYMBOL_PATH=srv*C:シンボル* http://msdl.microsoft.com/download/symbols
- DTrace は、必要なシンボルをシンボル サーバーから自動的にダウンロードし、ローカル パスにキャッシュします。
オプション:カーネルデバッガのセットアップターゲットマシンへの接続 ( MSDN リンク)。これはのみFBT または他のプロバイダーを使用してカーネル イベントをトレースする場合に必要です。 - カーネル デバッガをセットアップする場合は、C: で Secureboot と Bitlocker を無効にする必要があることに注意してください (有効な場合)。
DTraceの使用
- 管理者特権でコマンド プロンプトを開きます。
- 次のコマンドのいずれかを実行します:|_+_|
コマンドdtrace -lvn システムコール:::システムコールプロバイダーから利用可能なすべてのプローブとそのパラメーターがリストされます。
以下に、Windows で利用可能なプロバイダーの一部と、それらが計測するものを示します。
- syscall – NTOS システム コール fbt (関数境界トレース) – カーネル関数のエントリとリターンspid – ユーザー モード プロセスのトレース。カーネル モード FBT と同様ですが、任意の関数のインストルメンテーションも許可します offsets.etw (Windows のイベント トレーシング) – ETW 用のプローブの定義を許可します。 このプロバイダーは、DTrace での既存のオペレーティング システム インストルメンテーションの活用に役立ちます。
- これは、Windows がすでに提供しているすべての情報を DTrace が公開および取得できるようにするために、DTrace に加えられた追加の 1 つです。 S.T.W.。
Windows シナリオに適用できるその他のサンプル スクリプトは、次の場所にあります。 サンプルディレクトリ。
ソース: マイクロソフト