Delen via


Ingebouwde debuggerobjecten in NatVis

Overzicht

Systeemeigen foutopsporingsprogrammaobjecten vertegenwoordigen verschillende constructies en gedrag van de foutopsporingsprogramma-omgeving. Voorbeelden van foutopsporingsprogrammaobjecten zijn het volgende.

  • Sessie
  • Threads/draad
  • Processen/proces
  • Stapelraam (Stack Frame) / Stapelramen (Stack Frames)
  • Lokale variabelen
  • Modules/Module
  • Nutsvoorzieningen
  • Staat
  • Instellingen

U kunt de dx-opdracht en LINQ gebruiken om te communiceren met de foutopsporingsprogrammaobjecten. Zie dx (Display Debugger Object Model Expression) en LinQ gebruiken met de foutopsporingsprogrammaobjecten voor meer informatie.

U kunt ook met debugger-objecten werken met JavaScript. Zie systeemeigen foutopsporingsprogrammaobjecten in JavaScript Extensions voor meer informatie hierover.

In dit onderwerp wordt beschreven hoe u aangepaste NatVis-visualisaties kunt maken om foutopsporingsprogrammaobjecten weer te geven.

NatVis-ontwikkelingsbronnen

Raadpleeg deze bronnen voor algemene informatie over het werken met NatVis.

Aangepaste weergaven van systeemeigen objecten maken

.nvload

.nvlist

.nvunload

.nvunloadall

Voorbeeld van aangepast NatVis-object

Maak een eenvoudige C++-toepassing met een exemplaar van de 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;
}

Maak een bestand met de naam Dog.natvis dat deze XML bevat:

<?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>

Kopieer Dog.natvis naar de map Visualizers in uw installatiemap voor Hulpprogramma's voor foutopsporing voor Windows. Voorbeeld:

C:\Program Files\Foutopsporingsprogramma's voor Windows (x64)\Visualizers

Voer uw programma uit en breek in bij de hoofdfunctie. Voer een stap uit zodat de variabele MyDog wordt geïnitialiseerd. Geef MyDog weer met behulp van ?? en opnieuw met behulp van 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]

Zie ook

dx (Display Debugger Object Model Expression)

LINQ gebruiken met de foutopsporingsprogrammaobjecten

Systeemeigen Debugger-objecten in JavaScript-extensies