WinDbg - データ モデル メニュー

このセクションでは、WinDbg デバッガーでデータ モデル メニューを操作する方法について説明します。

新しいモデルクエリ

新しいモデル クエリを作成するには、[新しいモデル クエリ] ダイアログを使用します。 通常のdxコマンドに入力するものをここに入力できます。

たとえば、デバッガ セッション オブジェクトを検査するように指定Debugger.Sessionsします。

Screenshot of the New data model query dialog box in WinDbg.

デバッガ オブジェクトに関する一般的な情報については、「dx (Display Debugger Object Model Expression)」を参照してください。

LINQ クエリを使用して、セッションをさらに詳しく調べます。 このクエリは、最も多くのスレッドを実行している上位 5 つのプロセスを示します。

Debugger.Sessions.First().Processes.Select(p => new { Name = p.Name, ThreadCount = p.Threads.Count() }).OrderByDescending(p => p.ThreadCount),5

Screenshot of the Data model explore window displaying processes and threads in WinDbg.

データ モデル エクスプローラー

データ モデル エクスプローラーを使用すると、Debuggerネームスペース内のすべてのデータ モデル オブジェクトをすばやく参照できます。

Screenshot of the Data model explorer window with debug object sessions in WinDbg.

表示モード

表示モードを使用して、グリッド表示モードと階層表示モードを切り替えます。 列ヘッダーを右クリックして、さらに多くの列を表示または非表示にすることができます。

グリッド モードは、オブジェクトを掘り下げるのに役立ちます。 たとえば、グリッド ビューでの以前のトップ スレッド クエリは次のとおりです。

Screenshot of the Data model explore window displaying top threads in grid view in WinDbg.

下線付きの項目をクリックすると、新しいタブが開き、その情報を表示するためのクエリが実行されます。

このクエリは、カーネル セッションの物理デバイス オブジェクトのドライバーの名前によってグループ化されたプラグ アンド プレイ デバイス ツリー内のデバイスを表示します。

Debugger.Sessions.First().Devices.DeviceTree.Flatten(n => n.Children).GroupBy(n => n.PhysicalDeviceObject->Driver->DriverName.ToDisplayString()) 

Screenshot of the Data model explore window presenting plug and play device tree in grid view in WinDbg.

クエリの変更

アクティブなデータ モデル ウィンドウで使用されるクエリを変更するには、変更クエリを使用します。


参照

dx (デバッガー オブジェクト モデル式の表示)

WinDbg の機能