Windows Tips & News

DTraceがWindowsで利用可能になりました

click fraud protection

次のWindows10機能アップデート(19H1、2019年4月アップデート、バージョン1903)には、人気のあるオープンソースのデバッグおよび診断ツールであるDTraceのサポートが含まれます。 もともとはSolaris用に構築されており、Linux、FreeBSD、NetBSD、およびmacOSで使用できるようになりました。 MicrosoftはそれをWindowsに移植しました。

DTraceは、管理者または開発者がユーザーモードまたはカーネルモードのいずれかでシステムをリアルタイムで確認できるようにする動的トレースフレームワークです。 DTraceには、トレースポイントを動的に挿入できるCスタイルの高レベルで強力なプログラミング言語があります。 これらの動的に挿入されたトレースポイントを使用して、条件やエラーのフィルタリング、ロックパターンの分析、デッドロックの検出などのコードを記述できます。

Windowsでは、DTraceは静的なイベントトレースfor Windows(ETW)を拡張し、実行時にプログラムでトレースポイントを挿入する機能を提供しません。

dtrace.sysで使用されるすべてのAPIと機能は、文書化された呼び出しです。

Microsoftは、Windows 10用の特別なドライバーを実装しており、これにより、多数のシステム監視の役割を実行できます。 ドライバーは、Windows10バージョン1903に含まれます。 また、DTraceでは現在、カーネルデバッガーを有効にしてWindowsを起動する必要があります。

移植されたDTraceツールのソースコードはGitHubで入手できます。 「ページにアクセスWindows上のDTrace」をGitHubのOpenDTraceプロジェクトの下に表示してください。

Windows10でDTraceをセットアップする

機能を使用するための前提条件

  • Windows10インサイダー ビルド18342 以上
  • でのみ利用可能 x64 Windowsで、64ビットプロセスのトレース情報のみをキャプチャします
  • WindowsInsiderプログラム は 有効 と 構成済み 有効なWindowsInsiderアカウントを使用します。
    • 詳細については、[設定]-> [更新とセキュリティ]-> [Windows InsiderProgram]にアクセスしてください。

手順:

  1. BCD構成セット:
    1. bcdedit / set dtrace on
    2. 新しいInsiderビルドにアップグレードする場合は、bcdeditオプションを再度設定する必要があることに注意してください
  2. ダウンロード からDTraceパッケージをインストールします ダウンロードセンター.
    1. これにより、DTraceが機能するために必要なユーザーモードコンポーネント、ドライバー、および追加機能のオンデマンドパッケージがインストールされます。
  3. オプション:更新 PATH環境変数 含める C:\ Program Files \ DTrace
    1. set PATH =%PATH%; "C:\ Program Files \ DTrace"
  4. 設定 シンボルパス
    1. シンボルをローカルにキャッシュするための新しいディレクトリを作成します。 例:mkdir c:\ symbol
    2. 設定 _NT_SYMBOL_PATH= srv * C:\ symbol *http://msdl.microsoft.com/download/symbols
    3. DTraceは、必要なシンボルをシンボルサーバーから自動的にダウンロードし、ローカルパスにキャッシュします。
  5. オプション:カーネルデバッガーのセットアップ ターゲットマシンへの接続(MSDNリンク). これは それだけ FBTまたは他のプロバイダーを使用してカーネルイベントをトレースする場合に必要です。
    1. カーネルデバッガーをセットアップする場合は、C:でSecurebootとBitlockerを無効にする必要があることに注意してください(有効になっている場合)。
  6. リブート ターゲットマシン

DTraceの使用

  1. 開く 昇格したコマンドプロンプト.
  2. 次のいずれかのコマンドを実行します。
    #プログラムによる5秒間のシステムコールの要約:dtrace -Fn "tick-5sec {exit(0);} syscallentry {@num [pid、execname] = count();}"#タイマーセット/キャンセルプログラムを3つ要約します seconds: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を介してパスをトレースします(KDが必要です。

コマンド dtrace -lvn syscall syscallプロバイダーから入手可能なすべてのプローブとそのパラメーターが一覧表示されます。

以下は、Windowsで利用可能なプロバイダーの一部とそれらが装備しているものです。

  • システムコール –NTOSシステムコール
  • fbt (関数境界トレース)–カーネル関数のエントリと戻り値
  • pid –ユーザーモードのプロセストレース。 カーネルモードのFBTと同様ですが、任意の関数オフセットのインストルメンテーションも可能です。
  • etw (Windowsのイベントトレース)– ETWのプローブを定義できますこのプロバイダーは、DTraceの既存のオペレーティングシステムインストルメンテーションを活用するのに役立ちます。
    • これは、Windowsがすでに提供しているすべての情報を公開および取得できるようにするためにDTraceに行った追加の1つです。 ETW.

Windowsシナリオに適用できるその他のサンプルスクリプトは、こちらにあります。 サンプルディレクトリ.

ソース: マイクロソフト

Microsoftはタイムラインをオフライン機能にし、デバイス間の同期を無効にします

Microsoftはタイムラインをオフライン機能にし、デバイス間の同期を無効にします

おすすめされた: Windowsの問題を修正し、システムパフォーマンスを最適化するには、ここをクリックしてくださいマイクロソフトが、マイピープルバーやWindowsタイムラインなどのいくつかの新...

続きを読む

Windows10のコンテキストメニューアーカイブ

Windows 10には、特定のファイルタイプで使用できる特別なコンテキストメニューコマンド「PintoStart」があります。 これにより、ユーザーはそれらを[スタート]メニューに固定して、よ...

続きを読む

Firefoxflywebアーカイブとは何ですか

このWebサイトでは、Cookieを使用して、Webサイト内を移動する際のエクスペリエンスを向上させます。 これらのCookieのうち、必要に応じて分類されたCookieは、Webサイトの基本的...

続きを読む