Dela via


Interna felsökningsobjekt i NatVis

Översikt

Interna felsökningsobjekt representerar olika konstruktioner och beteenden i felsökningsmiljön. Exempel på felsökningsobjekt är följande.

  • Sittning
  • Trådar/tråd
  • Processer/process
  • Stackramar/Stackram
  • Lokala variabler
  • Moduler/modul
  • Nyttighet
  • Stat/län
  • Inställningar

Du kan använda dx-kommandot och LINQ för att interagera med felsökningsobjekten. Mer information finns i dx (Visa objektmodelluttryck för felsökningsprogram) och Använda LINQ med felsökningsobjekten.

Du kan också arbeta med felsökningsobjekt med hjälp av JavaScript. Mer information om detta finns i Native Debugger Objects in JavaScript Extensions (Interna felsökningsobjekt i JavaScript-tillägg).

Det här avsnittet beskriver hur du kan skapa anpassade NatVis-visualiserare för att visa felsökningsobjekt.

NatVis-utvecklingsresurser

Se dessa resurser för allmän information om hur du arbetar med NatVis.

Skapa anpassade vyer av inbyggda objekt

.nvload

.nvlist

.nvunload

.nvunloadall

Exempel på anpassat NatVis-objekt

Skapa ett enkelt C++-program som har en instans av klassen 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;
}

Skapa en fil med namnet Dog.natvis som innehåller denna XML:

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

Kopiera Dog.natvis till mappen Visualizers i installationskatalogen för felsökningsverktyg för Windows. Till exempel:

C:\Program Files\Felsökningsverktyg för Windows (x64)\Visualizers

Kör programmet och bryt in på huvudfunktionen. Ta ett steg så att variabeln MyDog initieras. Visa MyDog med ?? och på nytt med 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]

Se även

dx (Visning av objektmodelluttryck för felsökningsprogram)

Använda LINQ med felsökningsobjekten

interna felsökningsobjekt i JavaScript-tillägg