Oggetti debugger nativi in NatVis
Panoramica
Gli oggetti debugger nativi rappresentano vari costrutti e comportamenti dell'ambiente debugger. Gli oggetti debugger di esempio includono quanto segue.
- sessione
- Thread/Thread
- Processi/Processi
- Frame stack /Stack Frame
- Variabili locali
- Moduli/Modulo
- Utilità
- State
- Impostazioni
È possibile usare il comando dx e LINQ per interagire con gli oggetti debugger. Per altre informazioni, vedere dx (Display Debugger Object Model Expression) e Using LINQ With the debugger objects .
È anche possibile usare oggetti debugger usando JavaScript. Per altre informazioni su questo argomento, gli oggetti debugger nativi nelle estensioni JavaScript.
Questo argomento descrive come creare visualizzatori NatVis personalizzati per visualizzare gli oggetti debugger.
Risorse di sviluppo NatVis
Per informazioni generali sull'uso di NatVis, vedere queste risorse.
Creare visualizzazioni personalizzate di oggetti nativi
Esempio di oggetto NatVis personalizzato
Creare un'applicazione C++ semplice con un'istanza della classe 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;
}
Creare un file denominato Dog.natvis contenente questo codice 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>
Copiare Dog.natvis nella cartella Visualizzatori nella directory di installazione per Gli strumenti di debug per Windows. Ad esempio:
C:\Programmi\Strumenti di debug per Windows (x64)\Visualizzatori
Eseguire il programma ed eseguire l'interruzione nella funzione principale. Eseguire un passaggio in modo che la variabile MyDog
venga inizializzata. Visualizzare MyDog
l'uso di ?? e di nuovo usando 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]
Vedi anche
dx (Visualizzazione espressione del modello a oggetti debugger)