/Z7
, , /Zi
/ZI
(Format d’informations de débogage)
Les /Z7
options , /Zi
et /ZI
compilateur spécifient le type d’informations de débogage créées pour votre programme, et indiquent si ces informations sont conservées dans des fichiers objet ou dans un fichier de base de données de programme (PDB).
Syntaxe
/Z7
/Zi
/ZI
Notes
Lorsque vous spécifiez une option de débogage, le compilateur produit des noms de symboles pour les fonctions et les variables, les informations de type et les emplacements de ligne à utiliser par le débogueur. Ces informations de débogage symboliques peuvent être incluses dans les fichiers objet (.obj
fichiers) générés par le compilateur, ou dans un fichier PDB distinct (un .pdb
fichier) pour l’exécutable. Les options de format d’informations de débogage sont décrites dans les sections suivantes.
Aucune
Par défaut, si aucune option de format d’informations de débogage n’est spécifiée, le compilateur ne produit aucune information de débogage. La compilation est donc plus rapide.
/Z7
L’option /Z7
produit des fichiers objet qui contiennent également des informations de débogage symboliques complètes à utiliser avec le débogueur. Ces fichiers objet et toutes les bibliothèques créées à partir d’elles peuvent être sensiblement plus volumineux que les fichiers qui n’ont aucune information de débogage. Les informations de débogage symboliques incluent les noms et les types de variables, de fonctions et de numéros de ligne. Aucun fichier PDB n’est produit par le compilateur. Toutefois, un fichier PDB peut toujours être généré à partir de ces fichiers ou bibliothèques d’objets si l’éditeur de liens passe l’option /DEBUG
.
Pour les distributeurs de versions de débogage de bibliothèques tierces, il est avantageux de ne pas avoir de fichier PDB. Toutefois, les fichiers objet pour tous les en-têtes précompilés sont nécessaires pendant la phase de liaison de bibliothèque et pour le débogage. S’il n’existe que des informations de type (et aucun code) dans le .pch
fichier objet, vous devez également utiliser l’option /Yl
(Inject PCH Reference for Debug Library) qui est activée par défaut lorsque vous générez la bibliothèque.
L’option déconseillée /Gm
(Activer la reconstruction minimale) n’est pas disponible quand /Z7
elle est spécifiée.
/Zi
L’option /Zi
produit un fichier PDB distinct qui contient toutes les informations de débogage symboliques à utiliser avec le débogueur. Les informations de débogage ne sont pas incluses dans les fichiers objet ou exécutables, ce qui les rend beaucoup plus petites.
L’utilisation de /Zi
n’affecte pas les optimisations. Toutefois, /Zi
cela implique /debug
. Pour plus d’informations, consultez /DEBUG
(Générer des informations de débogage).
Lorsque vous spécifiez les deux /Zi
et /clr
que l’attribut DebuggableAttribute n’est pas placé dans les métadonnées d’assembly. Si vous le souhaitez, vous devez le spécifier dans le code source. Cet attribut peut affecter les performances d'exécution de l'application. Pour plus d’informations sur la façon dont l’attribut Debuggable
affecte les performances et comment vous pouvez modifier l’impact sur les performances, consultez Rendre une image plus facile à déboguer.
Le compilateur nomme le fichier <project>.pdb
PDB, où <project>
est le nom de votre projet. Si vous compilez un fichier en dehors d’un projet, le compilateur crée un fichier PDB nommé VC<x>.pdb
, où <x>
est une concaténation du numéro de version principale et mineure de la version du compilateur en cours d’utilisation. Le compilateur incorpore le nom de la base de données PDB et une signature horodatée identifiant dans chaque fichier objet créé à l’aide de cette option. Ce nom et cette signature pointent le débogueur vers l’emplacement des informations symboliques et numéro de ligne. Le nom et la signature dans le fichier PDB doivent correspondre au fichier exécutable pour que les symboles soient chargés dans le débogueur. Le débogueur WinDBG peut charger des symboles incompatibles à l’aide de la .symopt+0x40
commande. Visual Studio n’a pas d’option similaire pour charger des symboles incompatibles.
Si vous créez une bibliothèque à partir d’objets compilés à l’aide /Zi
de , le fichier PDB associé doit être disponible lorsque la bibliothèque est liée à un programme. Cela signifie que, si vous distribuez la bibliothèque, vous devez également distribuer le fichier PDB. Pour créer une bibliothèque qui contient des informations de débogage sans utiliser de fichiers PDB, vous devez sélectionner l’option /Z7
. Si vous utilisez les options d’en-têtes précompilés, les informations de débogage pour l’en-tête précompilé et le reste du code source sont placées dans le fichier PDB.
/ZI
L’option /ZI
est similaire à /Zi
, mais elle produit un fichier PDB dans un format qui prend en charge la fonctionnalité Modifier et Continuer . Pour utiliser les fonctionnalités De modification et continuer le débogage, vous devez utiliser cette option. La fonctionnalité Modifier et continuer est utile pour la productivité des développeurs, mais peut entraîner des problèmes de taille de code, de performances et de conformité du compilateur. Étant donné que la plupart des optimisations sont incompatibles avec Edit et Continue, l’utilisation /ZI
désactive toutes les #pragma optimize
instructions de votre code. L’option /ZI
est également incompatible avec l’utilisation de la__LINE__
macro prédéfinie ; le code compilé avec /ZI
ne peut pas être utilisé __LINE__
comme argument de modèle non de type, bien qu’il __LINE__
puisse être utilisé dans les expansions de macro.
L’option /ZI
force les options (Activer la liaison au niveau de la /Gy
fonction) et /FC
(chemin d’accès complet du fichier de code source dans diagnostics) à utiliser dans votre compilation.
/ZI
est incompatible avec /clr
(compilation Common Language Runtime).
Remarque
L’option /ZI
est disponible uniquement dans les compilateurs ciblant les processeurs x86 et x64. Cette option de compilateur n’est pas disponible dans les compilateurs ciblant les processeurs ARM.
Pour définir cette option du compilateur dans l'environnement de développement Visual Studio
Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.
Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Général.
Modifiez la propriété Debug Information Format . Sélectionnez OK pour enregistrer vos modifications.
Pour définir cette option du compilateur par programmation
- Consultez DebugInformationFormat.
Voir aussi
Options du compilateur MSVC
Syntaxe de ligne de commande du compilateur MSVC