Partager via


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 Microsoft 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 de l’entrée sélectionnée.

Capture d’écran de la liste d’erreurs Visual Studio avec une entrée avec une icône dans sa colonne de détails.

Capture d’écran de la liste d’erreurs Visual Studio. Il 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 ne peut 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++ à l’aide de MSBuild et du compilateur MSVC peuvent émettre des diagnostics structurés.
  • Les avertissements d’analyse du code qui prennent en charge les données d’événement clés émettent des diagnostics structurés.

Ouvrez la fenêtre Détails du problème en effectuant l’une des opérations suivantes :

  • Lorsque l’entrée est mise en surbrillance, double-cliquez dessus ou appuyez sur Entrée. Désactivez ce comportement avecl’Éditeur> de texteOptions>outils>C/C++>Advanced>Show Problem Details on Double Click.
  • 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 . Modifiez 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 dont les enfants imbriqués commencent à être réduites.

Capture d’écran de la fenêtre Détails du problème visual Studio avec tous les enfants réduits.

Capture d’écran de la fenêtre Détails du problème de Visual Studio. Un en-tête affiche le même code d’erreur et la même description que l’entrée liste d’erreurs antérieure. Il existe également un lien sélectionnable avec le texte cppcon-diag.cpp (ligne 23). Sous cet en-tête, il existe 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 correspondance avec la liste d’arguments (lézard). » À droite de chaque ligne est du texte 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 sont de petites flèches creuses pointant vers la droite qui signifient 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 Droite avec l’entrée mise en surbrillance.

Capture d’écran de la fenêtre Détails du problème visual Studio avec certains enfants développés.

Capture d’écran de la fenêtre Détails du problème de Visual Studio. Le contenu est principalement le même que 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) ne peut pas convertir l’argument 1 de lézard en chat ». Cette entrée est mise en retrait et peut être développée. La deuxième ligne d’avant est développée, révélant une entrée inexandée lisant « void pet(dog) ne peut pas convertir l’argument 1 de lézard en chien ». La troisième entrée est développée, révélant une entrée indiquant « les contraintes associées ne sont pas satisfaites ». Cette entrée a une lecture enfant développée « le lézard péttable concept évalué à false ». Cette entrée a deux enfants. Le premier est inexpliqué et lit « le concept has_member_pet lézard évalué à false ». La seconde est développée et lit « le concept has_default_pet lézard évalué à false ». Ce deuxième enfant a deux enfants, dont aucun n’est extensible. Ils lisent « is_pettable n’est pas membre du lézard » et « voir la déclaration de lézard ».

Activez ou désactivez les diagnostics structurés avec l’optionAdvanced Enable MSVC Structured Output(>> du >). Vous pouvez affecter plusieurs projets en créant un fichier Directory.Build.props avec la propriété UseStructuredOutput définie sur true ou false.