Partilhar via


Objetos nativos do depurador no NatVis

Visão geral

Objetos de depurador nativos representam vários constructos e comportamentos do ambiente do depurador. Os objetos de depurador de exemplo incluem o seguinte.

  • Session
  • Threads/Thread
  • Processos/Processo
  • Stack Frames / Stack Frame
  • Variáveis locais
  • Módulos/Módulo
  • Utilitário
  • Estado
  • Configurações

Você pode usar o comando dx e o LINQ para interagir com os objetos do depurador. Para obter mais informações, consulte dx (Exibir expressão de modelo de objeto do depurador) e Usando LINQ com os objetos do depurador.

Você também pode trabalhar com objetos de depurador usando JavaScript. Para obter mais informações sobre isso, consulte Objetos nativos de depurador em extensões JavaScript.

Este tópico descreve como você pode criar visualizadores NatVis personalizados para exibir objetos de depurador.

Recursos de desenvolvimento do NatVis

Consulte esses recursos para obter informações gerais sobre como trabalhar com NatVis.

Criar exibições personalizadas de objetos nativos

.nvload

.nvlist

.nvunload

.nvunloadall

Exemplo de objeto NatVis personalizado

Crie um aplicativo C++ simples que tenha uma instância da 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;
}

Crie um arquivo chamado Dog.natvis que contenha 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 para a pasta Visualizadores no diretório de instalação das Ferramentas de Depuração para Windows. Por exemplo:

C:\Arquivos de Programas\Ferramentas de Depuração para Windows (x64)\Visualizadores

Execute seu programa e interrompa na função main. Dê uma etapa para que a variável MyDog seja inicializada. Exibir MyDog usando ?? e novamente 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]

Confira também

dx (exibir expressão de modelo de objeto do depurador)

Usando LINQ com os objetos do depurador

Objetos nativos do depurador em extensões JavaScript