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 功能