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

NVLOAD

.nvlist

NVUNLOAD

.nvunloadall

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)

Verwenden von LINQ mit den Debuggerobjekten

Native Debuggerobjekte in JavaScript-Erweiterungen