次のWindows10機能アップデート(19H1、2019年4月アップデート、バージョン1903)には、人気のあるオープンソースのデバッグおよび診断ツールであるDTraceのサポートが含まれます。もともとはSolaris用に構築されており、Linux、FreeBSD、NetBSD、およびmacOSで使用できるようになりました。 MicrosoftはそれをWindowsに移植しました。
広告
DTraceは、管理者または開発者がユーザーモードまたはカーネルモードでシステムをリアルタイムで確認できるようにする動的トレースフレームワークです。 DTraceには、トレースポイントを動的に挿入できるCスタイルの高レベルで強力なプログラミング言語があります。これらの動的に挿入されたトレースポイントを使用して、条件やエラーでフィルタリングしたり、ロックパターンを分析するコードを記述したり、デッドロックを検出したりできます。
メモリの問題を解決する方法 Windows 10
Windowsでは、DTraceは静的なEvent Tracing for Windows(ETW)を拡張し、実行時にプログラムでトレースポイントを挿入する機能を提供しません。
dtrace.sysで使用されるすべてのAPIと機能は、文書化された呼び出しです。
マインクラフトでより良いpingを取得する方法
Microsoftは、Windows 10用の特別なドライバーを実装しました。これにより、さまざまなシステム監視の役割を実行できます。このドライバーは、Windows 10バージョン1903に含まれます。また、DTraceでは現在、カーネルデバッガーを有効にしてWindowsを起動する必要があります。
移植されたDTraceツールのソースコードはGitHubで入手できます。 「ページにアクセス Windows上のDTrace 」をGitHubのOpenDTraceプロジェクトの下に表示してください。
Windows10でDTraceをセットアップする
機能を使用するための前提条件
- Windows10インサイダー ビルド18342 以上
- でのみ利用可能 x64 Windowsで、64ビットプロセスのトレース情報のみをキャプチャします
- WindowsInsiderプログラム です 有効 そして 構成済み 有効なWindowsInsiderアカウントを使用する
- 詳細については、[設定]-> [更新とセキュリティ]-> [Windows InsiderProgram]にアクセスしてください。
指示:
新しいスナップチャット フィルターの使用方法
- BCD構成セット :
- bcdedit / set dtrace on
- 新しいInsiderビルドにアップグレードする場合は、bcdeditオプションを再度設定する必要があることに注意してください
- ダウンロード からDTraceパッケージをインストールします ダウンロードセンター 。
- これにより、DTraceが機能するために必要なユーザーモードコンポーネント、ドライバー、および追加機能のオンデマンドパッケージがインストールされます。
- オプション:更新 PATH環境変数 含める C: Program Files DTrace
- set PATH =%PATH%; 'C: Program Files DTrace'
- セットアップ シンボルパス
- シンボルをローカルにキャッシュするための新しいディレクトリを作成します。例:mkdir c: symbol
- セットする _NT_SYMBOL_PATH = srv * C: symbol * http://msdl.microsoft.com/download/symbols
- DTraceは、必要なシンボルをシンボルサーバーから自動的にダウンロードし、ローカルパスにキャッシュします。
- オプション: カーネルデバッガーのセットアップ ターゲットマシンへの接続( MSDNリンク )。これは のみ FBTまたは他のプロバイダーを使用してカーネルイベントをトレースする場合に必要です。
- カーネルデバッガーをセットアップする場合は、C:でSecurebootとBitlockerを無効にする必要があることに注意してください(有効になっている場合)。
- リブート ターゲットマシン
DTraceの使用
- 開く 昇格したコマンドプロンプト 。
- 次のいずれかのコマンドを実行します。
#プログラムによる5秒間のシステムコールの概要:dtrace -Fn'tick-5sec {exit(0);} syscall ::: entry {@num [pid、execname] = count();} '#タイマーセット/キャンセルプログラムの概要3秒間:dtrace -Fn'tick-3sec {exit(0);} syscall :: Nt * Timer *:entry {@ [probefunc、execname、pid] = count();} '#システムプロセスのカーネル構造をダンプします。 (シンボルパスを設定する必要があります)dtrace -n'BEGIN {print(*(struct nt`_EPROCESS *)nt`PsInitialSystemProcess); exit(0);} '#notepad.exeの実行時にNTFSを介してパスをトレースします(KDaが必要です
コマンド dtrace -lvn syscall ::: syscallプロバイダーから入手可能なすべてのプローブとそのパラメーターが一覧表示されます。
以下は、Windowsで利用可能なプロバイダーの一部とそれらが装備しているものです。
- システムコール –NTOSシステムコール
- fbt (関数境界トレース)–カーネル関数のエントリと戻り値
- pid –ユーザーモードのプロセストレース。カーネルモードのFBTと同様ですが、任意の関数オフセットのインストルメンテーションも可能です。
- sth (Windowsのイベントトレース)– ETWのプローブを定義できます。このプロバイダーは、DTraceの既存のオペレーティングシステムインストルメンテーションを活用するのに役立ちます。
- これは、Windowsがすでに提供しているすべての情報を公開および取得できるようにするためにDTraceに行った追加の1つです。 ETW 。
Windowsシナリオに適用できるその他のサンプルスクリプトは、こちらにあります。 サンプルディレクトリ 。
ソース: マイクロソフト