Partager via


Objets débogueur natifs dans NatVis

Vue d’ensemble

Les objets de débogueur natifs représentent différents constructions et comportements de l’environnement du débogueur. Les exemples d’objets de débogueur sont les suivants.

  • session
  • Threads / Thread
  • Processus / Processus
  • Stack Frames / Stack Frame
  • Variables locales
  • Modules / Module
  • Utilitaire
  • State
  • Paramètres

Vous pouvez utiliser la commande dx et LINQ pour interagir avec les objets du débogueur. Pour plus d’informations, consultez dx (Display Debugger Object Model Expression) et Utilisation de LINQ avec les objets débogueur.

Vous pouvez également utiliser des objets de débogueur à l’aide de JavaScript. Pour plus d’informations à ce sujet, consultez Objets débogueur natifs dans les extensions JavaScript.

Cette rubrique explique comment créer des visualiseurs NatVis personnalisés pour afficher des objets de débogueur.

Ressources de développement NatVis

Reportez-vous à ces ressources pour obtenir des informations générales sur l’utilisation de NatVis.

Créer des vues personnalisées d’objets natifs

.nvload

.nvlist

.nvunload

.nvunloadall

Exemple d’objet NatVis personnalisé

Créez une application C++ simple qui a un instance de la 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;
}

Créez un fichier nommé Dog.natvis qui contient ce code 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>

Copiez Dog.natvis dans le dossier Visualiseurs de votre répertoire d’installation pour Outils de débogage pour Windows. Par exemple :

C :\Program Files\Débogage Outils pour Windows (x64)\Visualiseurs

Exécutez votre programme et arrêtez-vous à la fonction main. Effectuez une étape pour que la variable MyDog soit initialisée. Affichez MyDog à l’aide de ?? et à nouveau à l’aide de 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]

Voir aussi

dx (Display Debugger Object Model Expression)

Utilisation de LINQ avec les objets débogueur

Objets débogueur natifs dans les extensions JavaScript