Janela Detalhes do problema

A janela Detalhes do problema mostra diagnósticos estruturados emitidos pelo compilador MSVC ou análise de código para C/C++.

Selecione as entradas na janela Lista de Erros que mostram um ícone na coluna Detalhes para abrir a janela Detalhes do Problema. A janela Detalhes do problema mostra o diagnóstico estruturado para a entrada selecionada.

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

Captura de tela da Lista de Erros do Visual Studio. Ela mostra uma tabela com apenas uma linha. A linha representa um erro do compilador e contém o código de erro C2665, a descriçã"pet: no overloaded function could convert all the argument types" e um ícone de um quadrado com o canto ampliado na coluna chamada Detalhes. O ícone é realçado.

Dois cenários produzem esses diagnósticos:

  • Compilações C++ usando MSBuild e o compilador MSVC podem emitir diagnósticos estruturados.
  • Os avisos de análise de código que dão suporte a dados de eventos-chave emitem diagnósticos estruturados.

Abra a janela Detalhes do problema seguindo um destes procedimentos:

  • Enquanto a entrada estiver realçada, clique duas vezes nela ou pressione Enter. Desabilite esse comportamento com Ferramentas>Opções>Editor de texto>C/C++>Avançado>Mostrar detalhes do problema com duplo clique.
  • Selecione o ícone na coluna Detalhes.
  • Abra o menu de atalho da entrada e selecione a opção Abrir detalhes do problema.

Por padrão, a janela Detalhes do problema é aberta no mesmo local que a janela Lista de Erros. Altere onde a janela Detalhes do problema é aberta movendo-a para a posição desejada.

A janela Detalhes do problema exibe informações estruturadas que podem ser aninhadas. Quando a janela é aberta, todas as entradas que têm filhos aninhados começam a ser recolhidas.

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

Captura de tela da janela Detalhes do problema do Visual Studio. Há um cabeçalho mostrando os mesmos código de erro e descrição que a entrada da Lista de Erros de antes. Há também um link selecionável com o texto cppcon-diag.cpp (Linha 23). Abaixo desse cabeçalho há entradas explicando que as sobrecargas potenciais são void pet(cat), void pet(dog) ou void pet(_T0). A entrada final afirma "ao tentar corresponder à lista de argumentos (lizard)". À direita de cada linha há um texto cinza mostrando o arquivo e os números de linha de cada entrada. Todos eles pertencem a cppcon-diag.cpp e os números de linha são 7, 6, 18 e 23, respectivamente. À esquerda das três primeiras entradas há pequenas setas ocas apontando para a direita que significam que essas entradas podem ser expandidas, mas atualmente não o estão.

Expanda uma entrada para exibir os filhos dela selecionando a seta no lado esquerdo de uma entrada ou pressionando Direita com a entrada realçada.

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

Captura de tela da janela Detalhes do problema do Visual Studio. O conteúdo é basicamente o mesmo que a captura de tela anterior, no entanto, algumas das entradas são expandidas para que as entradas filho delas fiquem visíveis. A primeira entrada é expandida. Há uma entrada aninhada com o texto "void pet(cat) cannot convert argument 1 from lizard to cat". Esta entrada é recuada e pode ser expandida. A segunda linha de antes é expandida, revelando uma entrada não expandida que diz "void pet(dog) cannot convert argument 1 from lizard to dog". A terceira entrada é expandida, revelando uma entrada que contém o texto "the associated constraints are not satisfied." Essa entrada tem um filho expandido com o texto "the concept pettable lizard evaluated to false." Esta entrada tem dois filhos. O primeiro não é expandido e contém o texto "the concept has_member_pet lizard evaluated to false." O segundo é expandido e contém o texto "the concept has_default_pet lizard evaluated to false." Este segundo filho tem dois filhos, nenhum dos quais é expansível. Eles contêm o texto "is_pettable is not a member of lizard" e "see declaration of lizard."

Habilite ou desabilite o diagnóstico estruturado com a opção Projeto>Propriedades>Avançado>Habilitar Saída Estruturada MSVC. Você pode afetar vários projetos criando um arquivo Directory.Build.props com a propriedade UseStructuredOutput definida como true ou false.