次の方法で共有


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

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

新しいモデル クエリ

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

たとえば、デバッガー セッション オブジェクトを調べる Debugger.Sessions を指定します。

WinDbg の [新しいデータ モデル クエリ] ダイアログ ボックスのスクリーンショット。

デバッガー オブジェクトに関する一般的な情報については、 dx (デバッガー オブジェクト モデル式の表示) を参照してください。

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

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

WinDbg のプロセスとスレッドを表示する [データ モデルの探索] ウィンドウのスクリーンショット。

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

データ モデル エクスプローラーを使用して、 Debugger 名前空間内のすべてのデータ モデル オブジェクトをすばやく参照します。

WinDbg のデバッグ オブジェクト セッションを含む [データ モデル エクスプローラー] ウィンドウのスクリーンショット。

表示モード

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

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

WinDbg のグリッド ビューにトップ スレッドが表示されている [データ モデルの探索] ウィンドウのスクリーンショット。

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

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

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

WinDbg のグリッド ビューにプラグ アンド プレイ デバイス ツリーが表示されている [データ モデルの探索] ウィンドウのスクリーンショット。

クエリの変更

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


こちらもご覧ください

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

WinDbgの機能