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