Freigeben über


Native Debugger-Objekte in NatVis

Überblick

Systemeigene Debuggerobjekte stellen verschiedene Konstrukte und Verhaltensweisen der Debuggerumgebung dar. Beispiele für Debuggerobjekte sind die folgenden:

  • Sitzung
  • Threads / Thread
  • Prozesse und Abläufe
  • Stapelrahmen / Stapelrahmen
  • Lokale Variablen
  • Modules / Module
  • Nützlichkeit
  • Staat
  • Einstellungen

Sie können den DX-Befehl und LINQ verwenden, um mit den Debuggerobjekten zu interagieren. Weitere Informationen finden Sie unter dx (Display Debugger Object Model Expression) und Using LINQ With the debugger objects.

Sie können auch mit Debuggerobjekten mit JavaScript arbeiten. Weitere Informationen hierzu finden Sie unter Native Debugger Objects in JavaScript-Erweiterungen.

In diesem Thema wird beschrieben, wie Sie benutzerdefinierte NatVis-Visualisierungen zum Anzeigen von Debuggerobjekten erstellen können.

NatVis-Entwicklungsressourcen

Allgemeine Informationen zum Arbeiten mit NatVis finden Sie in diesen Ressourcen.

Erstellen benutzerdefinierter Ansichten systemeigener Objekte

.nvload

NVLIST

.nvunload

.nvunloadall

Beispiel für ein benutzerdefiniertes NatVis-Objekt

Erstellen Sie eine einfache C++-Anwendung mit einer Instanz der Klasse CDog.

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\Debugging-Tools für Windows (x64)\Visualizers

Führen Sie Ihr Programm aus, und brechen Sie sich bei der Hauptfunktion ein. Führen Sie einen Schritt aus, damit die Variable MyDog initialisiert wird. Anzeige 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]

Siehe auch

dx (Ausdruck des Debuggerobjektmodells anzeigen)

Verwenden von LINQ With the debugger objects

native Debuggerobjekte in JavaScript-Erweiterungen