Partilhar via


Objetos de depurador nativos no NatVis

Visão geral

Os objetos nativos do depurador representam várias construções e comportamentos do ambiente do depurador. Exemplos de objetos do depurador são os seguintes.

  • Sessão
  • Tópicos / Thread
  • Processos / Processo
  • Quadros de pilha / Quadro de pilha
  • Variáveis locais
  • Módulos / Módulo
  • Utilidade
  • 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 (Display Debugger Object Model Expression) e Usando LINQ com os objetos do depurador.

Você também pode trabalhar com objetos depuradores usando JavaScript. Para obter mais informações sobre isso, consulte Native Debugger Objects in JavaScript Extensions.

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

Recursos de desenvolvimento NatVis

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

Criar visualizaçõ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 contém 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 o programa e entre na função principal. Dê um passo 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]

Ver também

dx (Expressão do Modelo de Objeto do Display Debugger)

Usando o LINQ com os objetos do depurador

objetos depuradores nativos em extensões JavaScript