Sdílet prostřednictvím


Okno Podrobnosti problému

V okně Podrobnosti problému se zobrazuje strukturovaná diagnostika vystavená kompilátorem MSVC nebo analýzou kódu pro C/C++.

Výběrem položek v okně Seznam chyb zobrazující ikonu ve sloupci Podrobnosti o problému otevřete okno Podrobnosti problému. V okně Podrobnosti problému se zobrazí strukturovaná diagnostika pro vybranou položku.

Screenshot of the Visual Studio Error List with one entry that has an icon in its details column.

Snímek obrazovky se seznamem chyb sady Visual Studio Zobrazuje tabulku s jedním řádkem. Řádek představuje chybu kompilátoru a obsahuje kód chyby C2665, popis "pet: žádná přetížená funkce nemohla převést všechny typy argumentů" a ikonu čtverce s rohem zvětšeným ve sloupci s názvem Podrobnosti. Tato ikona je zvýrazněná.

Dvě scénáře vytvářejí tyto diagnostiky:

  • Kompilace jazyka C++ pomocí nástroje MSBuild a kompilátoru MSVC mohou generovat strukturovanou diagnostiku.
  • Upozornění analýzy kódu, která podporují klíčová data událostí , generují strukturovanou diagnostiku.

Otevřete okno Podrobnosti problému jedním z následujících způsobů:

  • Když je položka zvýrazněná, poklikejte na ni nebo stiskněte Enter. Zakažte toto chování pomocí textového editoru>Možností nástroje>>C/C++>Advanced>Show Problem Details poklikání.
  • Vyberte ikonu ve sloupci Podrobnosti .
  • Otevřete místní nabídku pro položku a vyberte možnost Otevřít podrobnosti problému.

Ve výchozím nastavení se okno Podrobnosti o problému otevře ve stejném umístění jako okno Seznam chyb. Změňte, kde se otevře okno Podrobnosti o problému tak, že ho přesunete na požadované místo.

V okně Podrobnosti problému se zobrazují strukturované informace, které mohou být vnořené. Když se okno otevře, začnou se sbalit všechny položky, které mají vnořené podřízené položky.

Screenshot of the Visual Studio Problem Details window with all children collapsed.

Snímek obrazovky s oknem Podrobnosti problému v sadě Visual Studio V záhlaví je zobrazený stejný kód chyby a popis jako položka seznamu chyb z dříve. K dispozici je také výběrový odkaz s textem cppcon-diag.cpp (řádek 23). Pod touto hlavičkou jsou položky vysvětlující, že potenciální přetížení jsou void pet(kočka), void pet(pes) nebo void pet(_T0). Poslední položka uvádí " při pokusu o shodu se seznamem argumentů (ještěrka)." Napravo od každého řádku je šedý text zobrazující soubor a čísla řádků pro každou položku. Všechny patří cppcon-diag.cpp a čísla řádků jsou 7, 6, 18 a 23. Vlevo od prvních tří položek jsou malé prázdné šipky ukazující vpravo, které označují, že tyto položky lze rozbalit, ale aktuálně nejsou.

Rozbalením položky zobrazíte podřízené položky tak, že vyberete šipku na levé straně položky nebo stisknete vpravo se zvýrazněnou položkou.

Screenshot of the Visual Studio Problem Details window with some children expanded.

Snímek obrazovky s oknem Podrobnosti problému v sadě Visual Studio Obsah je většinou stejný jako na předchozím snímku obrazovky, ale některé položky jsou rozbalené, takže jejich podřízené položky jsou viditelné. První položka se rozbalí. Existuje vnořená položka s textem "void pet(cat) nemůže převést argument 1 z ještěrky na kočku." Tato položka je odsazená a lze ji rozbalit. Druhý řádek z předcházejícího rozbalení, který odhalí nevyexpandovanou položku ve čtení "void pet(pes) nemůže převést argument 1 z ještěrky na psa." Třetí položka se rozbalí a zobrazí se položka s informacemi o tom, že přidružená omezení nejsou splněna. Tato položka obsahuje rozšířené podřízené čtení "koncept pettable ještěrka vyhodnocena jako nepravda". Tato položka má dvě podřízené položky. První je nevyexpandovaný a přečte si "koncept has_member_pet ještěrka vyhodnocena jako nepravda". Druhá se rozbalí a přečte si "koncept has_default_pet ještěrku vyhodnocený jako nepravda". Druhé dítě má dvě podřízené položky, z nichž ani jedno z nich není rozbalitelné. Čtou "is_pettable není členem ještěrky" a "viz deklaraci ještěrky".

Povolte nebo zakažte strukturovanou diagnostiku pomocí možnosti Rozšířené>povolení strukturovaného výstupu>> MSVC. Několik projektů můžete ovlivnit vytvořením souboru Directory.Build.props s vlastností UseStructuredOutput definovanou na hodnotu true nebo false.