/Z7, /Zi, /ZI (Format des informations de débogage)

Permettent de sélectionner le type des informations de débogage générées par votre programme et déterminent si ces informations sont stockées dans des fichiers objets (.obj) ou dans une base de données du programme (PDB).

/Z{7|i|I}

Notes

Ces options sont décrites dans le tableau suivant.

  • Aucun
    Ne génère pas d'informations de débogage, d'où une compilation plus rapide.

  • /Z7
    Produit un fichier .obj contenant des informations de débogage symboliques complètes pour une utilisation avec le débogueur. Les informations de débogage sur les symboles incluent les noms et les types des variables, ainsi que des fonctions et des numéros de ligne. Aucun fichier .pdb n'est produit.

    L'absence de fichier .pdb peut présenter un avantage pour les distributeurs de bibliothèques tierces. Toutefois, les fichiers .obj pour les en-têtes précompilés sont nécessaires pendant la phase de chaînage et lors du débogage. Si les fichiers objets .pch contiennent uniquement des informations de type (et aucun code), vous devez également compiler avec /Yl (Injecter une référence PCH pour une bibliothèque de débogage).

  • /Zi
    Produit une base de données du programme (PDB) contenant des informations sur les types et des informations complètes de débogage sur les symboles à utiliser avec le débogueur. Les informations de débogage sur les symboles incluent les noms et les types des variables, ainsi que des fonctions et des numéros de ligne.

    /Zi n'affecte pas les optimisations. Toutefois, /Zi implique /debug ; consultez /DEBUG (Générer les informations de débogage) pour plus d'informations.

    Les informations de type sont placées dans le fichier .pdb, et pas dans le fichier .obj.

    Vous pouvez utiliser /Gm (Activer la régénération minimale) avec /Zi, alors que /Gm n'est pas disponible lors de la compilation avec /Z7.

    Lors de la compilation avec /Zi et /clr, l'attribut DebuggableAttribute n'est pas placé dans les métadonnées de l'assembly ; vous devez le spécifier dans le code source, le cas échéant. Cet attribut peut affecter les performances runtime de l'application. Pour plus d'informations sur la façon dont l'attribut Debuggable affecte les performances et sur la manière de modifier l'impact des performances, consultez Simplification du débogage d'une image.

  • /ZI
    Produit une base de données du programme, comme décrit ci-dessus, dans un format qui prend en charge la fonctionnalité Modifier & Continuer. Pour utiliser le débogage Modifier & Continuer, cette option est nécessaire. Dans la mesure où la plupart des optimisations sont incompatibles avec la fonctionnalité Modifier & Continuer, l'utilisation de l'option /ZI désactive toutes les instructions #pragma optimize dans votre code.

    /ZI indique l'utilisation de /Gy (Activer la liaison au niveau des fonctions) et /FC (Chemin d'accès complet du fichier de code source dans les diagnostics) dans votre compilation.

    /ZI n'est pas compatible avec /clr (Compilation pour le Common Language Runtime).

    Notes

    /ZI n'est disponible que dans le compilateur qui cible x86 ; cette option du compilateur n'est pas disponible dans les compilateurs qui ciblent x64 ou la famille de processeurs Itanium (Itanium Processor Family, IPF).

Le compilateur nomme la base de données de programme projet.pdb. Si vous compilez un fichier sans projet, le compilateur crée une base de données nommée VCx0.pdb., où x est la version principale de Visual C++ en cours d'utilisation. Le compilateur incorpore le nom de la base de données PDB dans chaque fichier .obj créé avec cette option, afin d'indiquer au débogueur l'emplacement des informations sur les symboles et les numéros de ligne. Lorsque vous utilisez cette option, vos fichiers .obj sont plus compacts puisque les informations de débogage ne sont pas stockées dans ces fichiers, mais dans le fichier .pdb.

Si vous créez une bibliothèque à partir d'objets compilés avec cette option, le fichier .pdb associé doit être disponible lorsque la bibliothèque est liée à un programme. Ainsi, si vous distribuez la bibliothèque, vous devez aussi distribuer la base de données PDB.

Pour créer une bibliothèque contenant des informations de débogage sans utiliser de fichiers .pdb, vous devez sélectionner l'option Compatible C 7.0 (/Z7) du compilateur. Si vous utilisez les options des en-têtes précompilés, les informations de débogage à la fois de l'en-tête précompilé et du reste du code source sont placées dans la base de données PDB. L'option /Yd est ignorée lorsque l'option de base de données du programme est spécifiée.

Pour définir cette option du compilateur dans l'environnement de développement Visual Studio

  1. Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d'informations, consultez Comment : ouvrir les pages de propriétés d'un projet.

  2. Cliquez sur le dossier C/C++.

  3. Cliquez sur la page de propriétés Général.

  4. Modifiez la propriété Format des informations de débogage.

Pour définir cette option du compilateur par programmation

Voir aussi

Référence

Options du compilateur

Définition des options du compilateur