Compartir a través de


Objetos de depurador nativos en NatVis

Información general

Los objetos del depurador nativo representan diversas construcciones y comportamientos del entorno del depurador. Los objetos de depurador de ejemplo incluyen lo siguiente.

  • Sesión
  • Subprocesos o subprocesos
  • Procesos y procesos
  • Marcos de pila/Marco de pila
  • Variables locales
  • Módulos o módulos
  • Utilidad
  • State
  • Configuración

Puede usar el comando dx y LINQ para interactuar con los objetos del depurador. Para obtener más información, vea dx (Display Debugger Object Model Expression) y Using LINQ With the debugger objects(Usar LINQ Con los objetos del depurador).

También puede trabajar con objetos del depurador mediante JavaScript. Para obtener más información sobre esto, vea Objetos de depurador nativo en extensiones de JavaScript.

En este tema se describe cómo crear visualizadores NatVis personalizados para mostrar objetos del depurador.

Recursos de desarrollo de NatVis

Consulte estos recursos para obtener información general sobre cómo trabajar con NatVis.

Creación de vistas personalizadas de objetos nativos

.nvload

.nvlist

.nvunload

.nvunloadall

Ejemplo de objeto NatVis personalizado

Cree una aplicación de C++ sencilla que tenga una instancia de la clase 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;
}

Cree un archivo denominado Dog.natvis que contenga este 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>

Copie Dog.natvis en la carpeta Visualizadores del directorio de instalación para Herramientas de depuración para Windows. Por ejemplo:

C:\Archivos de programa\Herramientas de depuración para Windows (x64)\Visualizadores

Ejecute el programa y interrumpa en la función principal. Realice un paso para que la variable MyDog se inicialice. Muestra MyDog con ?? y otra vez con 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]

Consulte también

dx (Mostrar expresión del modelo de objetos del depurador)

Uso de LINQ Con los objetos del depurador

Objetos de depurador nativos en extensiones de JavaScript