Fenêtre Détails du problème
La fenêtre Détails du problème affiche les diagnostics structurés émis par le compilateur MSVC ou l’analyse du code pour C/C++.
Sélectionnez les entrées dans la fenêtre Liste d’erreurs qui affichent une icône dans la colonne Détails pour ouvrir la fenêtre Détails du problème. La fenêtre Détails du problème affiche les diagnostics structurés pour l’entrée sélectionnée.
Capture d’écran de la liste d’erreurs Visual Studio. Elle affiche une table avec une seule ligne. La ligne représente une erreur du compilateur et contient le code d’erreur C2665, la description « pet : aucune fonction surchargée n’a pu convertir tous les types d’arguments », et une icône d’un carré avec le coin agrandi dans la colonne nommée Détails. Cette icône est mise en surbrillance.
Deux scénarios produisent ces diagnostics :
- Les compilations C++ utilisant MSBuild et le compilateur MSVC peuvent émettre des diagnostics structurés.
- Les avertissements liés à l’analyse du code qui prennent en charge les données d’événements clés émettent des diagnostics structurés.
Ouvrez la fenêtre Détails du problème en effectuant l’une des opérations suivantes :
- Pendant que l’entrée est mise en surbrillance, double-cliquez dessus ou appuyez sur Entrée. Désactivez ce comportement avec Outils>Options>Éditeur de texte>C/C++>Avancé>Afficher les détails du problème lors d’un double-clic.
- Sélectionnez l’icône dans la colonne Détails.
- Ouvrez le menu contextuel de l’entrée et sélectionnez l’option Ouvrir les détails du problème.
Par défaut, la fenêtre Détails du problème s’ouvre au même emplacement que la fenêtre Liste d’erreurs. Vous pouvez modifier l’emplacement d’ouverture de la fenêtre Détails du problème en la déplaçant vers la position souhaitée.
La fenêtre Détails du problème affiche des informations structurées qui peuvent être imbriquées. Lorsque la fenêtre s’ouvre, toutes les entrées ayant des enfants imbriqués sont réduites.
Capture d’écran de la fenêtre Détails du problème de Visual Studio. Un en-tête affiche un code d’erreur et une description identiques à ceux de l’entrée de Liste d’erreurs précédente. Il existe également un lien sélectionnable avec le texte cppcon-diag.cpp (ligne 23). Sous cet en-tête se trouvent des entrées expliquant que les surcharges potentielles sont void pet(cat), void pet(dog) ou void pet(_T0). L’entrée finale indique « lors de la tentative de mise en correspondance de la liste des arguments (lizard) ». À droite de chaque ligne figure du texte en gris montrant le fichier et les numéros de ligne pour chaque entrée. Tous appartiennent à cppcon-diag.cpp, et les numéros de ligne sont respectivement 7, 6, 18 et 23. À gauche des trois premières entrées figurent de petites flèches creuses pointant vers la droite, ce qui signifie que ces entrées peuvent être développées, mais ne le sont pas actuellement.
Développez une entrée pour afficher ses enfants en sélectionnant la flèche à gauche d’une entrée ou en appuyant sur la touche Droite avec l’entrée mise en surbrillance.
Capture d’écran de la fenêtre Détails du problème de Visual Studio. Le contenu est pour la plupart identique à celui de la capture d’écran précédente, mais certaines des entrées sont développées afin que leurs entrées enfants soient visibles. La première entrée est développée. Il existe une entrée imbriquée avec le texte « void pet(cat) : impossible de convertir argument 1 de lizard en cat ». Cette entrée est mise en retrait et peut être développée. La deuxième ligne est développée, révélant une entrée non développée indiquant « void pet(dog) : impossible de convertir argument 1 de lizard en dog ». La troisième entrée est développée, révélant une entrée indiquant « les contraintes associées ne sont pas remplies ». Cette entrée a un enfant développé indiquant « le concept pettable lizard a la valeur false ». Cette entrée a deux enfants. Le premier n’est pas développé et indique « le concept has_member_pet lizard a la valeur false ». Le second est développé et indique « le concept has_default_pet lizard a la valeur false ». Ce deuxième enfant a deux enfants, dont aucun ne peut être développé. Ils indiquent « is_pettable n’est pas membre de lizard » et « voir la déclaration de lizard ».
Activez ou désactivez les diagnostics structurés avec l’option Projet>Propriétés>Avancé>Activer la sortie structurée MSVC. Vous pouvez affecter plusieurs projets en créant un fichier Directory.Build.props avec la propriété UseStructuredOutput définie sur true ou false.