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