WinDbg – Menü "Datenmodell"
In diesem Abschnitt wird beschrieben, wie Sie mit dem Datenmodellmenü im WinDbg-Debugger arbeiten.
Neue Modellabfrage
Verwenden Sie das Dialogfeld Neue Modellabfrage, um eine neue Modellabfrage zu erstellen. Sie können hier alles einfügen, was Sie in einen normalen dx
Befehl einfügen würden.
Geben Sie beispielsweise an Debugger.Sessions
, um die Debuggersitzungsobjekte zu untersuchen.
Allgemeine Informationen zu den Debuggerobjekten finden Sie unter dx (Debugger-Objektmodellausdruck anzeigen).
Verwenden Sie LINQ-Abfragen, um tiefer in die Sitzung einzusteigen. Diese Abfrage zeigt die fünf wichtigsten Prozesse an, die die meisten Threads ausführen.
Debugger.Sessions.First().Processes.Select(p => new { Name = p.Name, ThreadCount = p.Threads.Count() }).OrderByDescending(p => p.ThreadCount),5
Datenmodell-Explorer
Verwenden Sie den Datenmodell-Explorer, um jedes Datenmodellobjekt im Debugger
Namespace schnell zu durchsuchen.
Anzeigemodus
Verwenden Sie den Anzeigemodus, um zwischen Raster- und Hierarchieanzeigemodus zu wechseln. Sie können mit der rechten Maustaste auf Spaltenüberschriften klicken, um weitere Spalten auszublenden oder anzuzeigen.
Der Rastermodus kann nützlich sein, um in den Objekten nach unten zu suchen. Hier sehen Sie beispielsweise die vorherige Abfrage der obersten Threads in der Rasteransicht.
Wenn Sie auf ein unterstrichenes Element klicken, wird eine neue Registerkarte geöffnet, und eine Abfrage wird ausgeführt, um diese Informationen anzuzeigen.
Diese Abfrage zeigt die Geräte in der Plug-and-Play-Gerätestruktur, gruppiert nach dem Namen des Treibers des physischen Geräteobjekts für eine Kernelsitzung.
Debugger.Sessions.First().Devices.DeviceTree.Flatten(n => n.Children).GroupBy(n => n.PhysicalDeviceObject->Driver->DriverName.ToDisplayString())
Änderungsabfrage
Verwenden Sie die Änderungsabfrage, um die Abfrage zu ändern, die im aktiven Datenmodellfenster verwendet wird.