Native Debuggerobjekte in NatVis
Überblick
Native Debuggerobjekte stellen verschiedene Konstrukte und Verhaltensweisen der Debuggerumgebung dar. Beispiele für Debuggerobjekte sind:
- Sitzung
- Threads/Thread
- Prozesse/Prozess
- Stapelrahmen/Stapelrahmen
- Lokale Variablen
- Modules / Module
- Hilfsprogramm
- State
- Einstellungen
Sie können den Dx-Befehl und LINQ verwenden, um mit den Debuggerobjekten zu interagieren. Weitere Informationen finden Sie unter dx (Debuggerobjektmodellausdruck anzeigen) und Verwenden von LINQ mit den Debuggerobjekten.
Sie können auch mit Debuggerobjekten mithilfe von JavaScript arbeiten. Weitere Informationen hierzu finden Sie unter Native Debuggerobjekte in JavaScript-Erweiterungen.
In diesem Thema wird beschrieben, wie Sie benutzerdefinierte NatVis-Schnellansichten zum Anzeigen von Debuggerobjekten erstellen können.
NatVis-Entwicklungsressourcen
Allgemeine Informationen zum Arbeiten mit NatVis finden Sie in diesen Ressourcen.
Erstellen von benutzerdefinierten Ansichten nativer Objekte
Beispiel für ein benutzerdefiniertes NatVis-Objekt
Erstellen Sie eine einfache C++-Anwendung, die über eine instance der CDog-Klasse verfügt.
class CDog
{
public:
CDog(){m_age = 8; m_weight = 30;}
long m_age;
long m_weight;
};
int main()
{
CDog MyDog;
printf_s("%d, %d\n", MyDog.m_age, MyDog.m_weight);
return 0;
}
Erstellen Sie eine Datei namens Dog.natvis, die diesen XML-Code enthält:
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="https://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="CDog">
<DisplayString>{{Age = {m_age} years. Weight = {m_weight} pounds.}}</DisplayString>
</Type>
</AutoVisualizer>
Kopieren Sie Dog.natvis in den Ordner Visualizers in Ihrem Installationsverzeichnis für Debugtools für Windows. Beispiel:
C:\Programme\Debugtools für Windows (x64)\Visualizer
Führen Sie Ihr Programm aus, und unterbrechen Sie die funktion Standard. Führen Sie einen Schritt aus, damit die Variable MyDog
initialisiert wird. Anzeigen MyDog
mit ?? und erneut mit dx.
0:000> ??MyDog
class CDog
+0x000 m_age : 0n8
+0x004 m_weight : 0n30
0:000> *
0:000> dx -r1 MyDog
.....
MyDog : {Age = 8 years. Weight = 30 pounds.} [Type: CDog]
Weitere Informationen
dx (Debuggerobjektmodellausdruck anzeigen)