Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A ferramenta "Relatar um problema" é amplamente usada pelos usuários do Visual Studio para relatar uma série de problemas. A equipe do Visual Studio detecta tendências de falha e lentidão nos comentários dos usuários e aborda problemas que afetam uma ampla faixa de usuários. Quanto mais acionável for um tíquete de feedback específico, maior a probabilidade de ele ser rapidamente diagnosticado e resolvido pela equipe de produtos. Este documento descreve as práticas recomendadas ao relatar problemas de falha ou lentidão para torná-los mais acionáveis.
Práticas recomendadas gerais
O Visual Studio é uma plataforma grande e complexa que dá suporte a uma variedade de idiomas, tipos de projeto, plataformas e muito mais. O desempenho é uma função dos componentes que estão instalados e ativos em uma sessão, das extensões instaladas, das configurações do Visual Studio, da configuração do computador e, por fim, da estrutura do código que está sendo editado. Considerando o número de variáveis, é difícil saber se o relatório de problemas de um usuário tem o mesmo problema subjacente que um relatório de problema de outro usuário, mesmo que o sintoma visível seja o mesmo. Considerando que, aqui estão algumas práticas recomendadas para garantir que seu relatório de problemas específico tenha maior probabilidade de ser diagnosticado.
Fornecer um título o mais específico possível
Procure assinaturas diferentes para o problema que está sendo relatado e inclua o máximo possível no título. Se o título for descritivo, é menos provável que usuários com problemas não relacionados (mas com o mesmo sintoma superficial) votem ou comentem no seu ticket, o que dificulta o diagnóstico de que o problema é na verdade o problema.
Quando estiver em dúvida, registre um novo relatório de problemas
Muitos problemas podem não ter assinaturas ou etapas diferentes a reproduzir. Nesses casos, um novo relatório é melhor do que um voto a favor ou um comentário em outro relatório, que está relatando um sintoma externo semelhante. Dependendo do tipo de relatório, inclua arquivos de diagnóstico adicionais ao relatório, conforme descrito posteriormente neste documento.
práticas recomendadas específicas do problema
Descritos abaixo estão problemas difíceis de diagnosticar sem bons arquivos de diagnóstico. Depois de identificar o caso que melhor descreve seu problema, siga as etapas de comentários específicas para esse caso.
Falhas: Ocorre uma falha quando o processo (Visual Studio) é encerrado inesperadamente.
Falta de resposta: VS fica sem resposta por um longo período de tempo.
problemas de lentidão: Qualquer ação específica no VS é mais lenta do que o desejado
Alta CPU: Períodos estendidos de uso de CPU inesperadamente alto
Problemas fora do processo: um problema causado por um processo satélite do Visual Studio
Falhas
Ocorre uma falha quando o processo (Visual Studio) é encerrado inesperadamente.
Falhas reproduzíveis diretamente
Falhas reproduzíveis diretamente são casos que têm todas as seguintes características:
Pode ser observado seguindo um conjunto conhecido de etapas
Pode ser observado em vários computadores (se disponível)
Pode ser reproduzido no código de exemplo ou em um projeto que pode ser vinculado ou fornecido como parte dos comentários (se as etapas envolverem abrir um projeto ou documento)
Para esses problemas, siga as etapas em "How to Report a Problem" e certifique-se de incluir:
As etapas para reproduzir o problema
Um projeto de reprodução autônomo, conforme descrito acima. Se a reprodução autônoma não for possível, inclua:
O idioma dos projetos abertos (C#, C++, etc.)
O tipo de projeto (Aplicativo de Console, ASP.NET etc.)
Nota
Comentários mais valiosos: Para este caso, o feedback mais valioso é o conjunto de etapas para reproduzir o problema juntamente com o código-fonte de exemplo.
Falhas desconhecidas
Se você não tiver certeza do que está causando as falhas ou elas parecerem aleatórias, você poderá capturar arquivos de despejo localmente sempre que o Visual Studio falhar e anexá-los a itens de feedback separados. Para salvar despejos localmente quando o Visual Studio falhar, execute os seguintes comandos em uma janela de comando do administrador:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\devenv.exe" /v DumpType /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\devenv.exe" /v DumpCount /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\devenv.exe" /v DumpFolder /t REG_SZ /d "C:\CrashDumps"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService32.exe" /v DumpType /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService32.exe" /v DumpCount /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService32.exe" /v DumpFolder /t REG_SZ /d "C:\CrashDumps"
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService.exe" /v DumpType /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService.exe" /v DumpCount /t REG_DWORD /d 2
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\ServiceHub.RoslynCodeAnalysisService.exe" /v DumpFolder /t REG_SZ /d "C:\CrashDumps"
Personalize a contagem de despejos e a pasta de despejo conforme apropriado. Encontre mais informações sobre essas configurações aqui.
Nota
Provavelmente, os despejos capturados usando o Gerenciador de Tarefas terão o número de bit errado, o que os torna menos utilizáveis. O procedimento descrito acima é a maneira preferencial de capturar um despejo de heap. Se você quiser usar o Gerenciador de Tarefas, feche o que está em execução no momento, inicie o Gerenciador de Tarefas de 32 bits (%windir%\syswow64\taskmgr.exe) e colete um despejo de heap.
Nota
Cada arquivo de despejo produzido por esse método terá até 4 GB de tamanho. Defina "DumpFolder" para um local com espaço suficiente no disco ou ajuste o "DumpCount" adequadamente.
Sempre que o Visual Studio falhar, ele criará um arquivo de dump devenv.exe.[número].dmp no local configurado.
Em seguida, use o recurso "Relatar um Problema" do Visual Studio. Isso permitirá que você anexe o despejo adequado.
Localize o arquivo de despejo para a falha que você está relatando (procure um arquivo com o tempo de criação correto)
Se possível, feche o arquivo (*.zip) para reduzir seu tamanho antes de enviar comentários
Siga as etapas em "Como relatar um problema" e anexe o despejo de heap a um novo item de comentários.
Nota
Comentários mais valiosos: nesse caso, os comentários mais valiosos são o despejo de heap capturado no momento da falha.
Apatia
O VS não responde durante um longo período.
Ausência de resposta reproduzível diretamente
Conforme descrito na seção correspondente sobre falhas, para problemas que podem ser facilmente reproduzidos, vistos em vários computadores e que podem ser demonstrados em um pequeno exemplo, os relatórios de comentários mais valiosos são aqueles que incluem etapas para reproduzir o problema e incluem o código-fonte de exemplo que demonstra o problema.
Falta de Resposta Desconhecida
Se uma falta de resposta se manifestar de forma imprevisível, na próxima ocorrência, inicie uma nova instância do Visual Studio e relate um problema dessa instância. Na tela "Gravar", selecione a sessão do Visual Studio que não responde. (Para obter mais informações sobre como registrar ações que podemos seguir para reproduzir o problema, consulte a Etapa 8 no Como relatar um problema página.)
Se a instância do Visual Studio que não responde for iniciada no modo Administrador, a segunda instância também precisará ser iniciada no modo Administrador.
Nota
Comentários mais valiosos: nesse caso, os comentários mais valiosos são o despejo de heap capturado no momento da ausência de resposta.
Lentidão e altos problemas de CPU
O que torna um problema de lentidão ou alto uso da CPU mais fácil de abordar é um rastreamento de desempenho capturado enquanto a operação lenta ou o evento de uso elevado da CPU está em andamento.
Nota
Quando possível, isole cada cenário em um relatório de comentários específico separado. Por exemplo, se a digitação e a navegação forem lentas, siga as etapas abaixo uma vez por problema. Isso ajuda a equipe do produto a isolar a causa de problemas específicos.
Para obter melhores resultados na captura do desempenho, siga estas etapas:
Se ainda não estiver em execução, abra uma cópia do Visual Studio em que você reproduzirá o problema
Configure tudo para reproduzir o problema. Por exemplo, se você precisar de um projeto específico para ser carregado com um arquivo específico aberto, verifique se ambas as etapas estão concluídas antes de prosseguir.
Se você não estiver relatando um problema específico para carregar uma solução, tente aguardar de 5 a 10 minutos (ou mais, dependendo do tamanho da solução) depois de abrir a solução, para gravar o rastreamento de desempenho. O processo de carga da solução produz uma grande quantidade de dados, portanto, aguardar alguns minutos nos ajuda a focar no problema específico que você está relatando.
Inicie uma segunda cópia do Visual Studio sem nenhuma solução aberta
Na nova cópia do Visual Studio, abra a ferramenta Relatar um Problema
Siga as etapas em Como relatar um problema até chegar à etapa "Fornecer um despejo de heap e rastreamento (opcional)".
Escolha gravar a primeira cópia do Visual Studio (aquela que encontra um problema de desempenho) e iniciar a gravação.
O aplicativo Gravador de Etapas será exibido e iniciará a gravação.
Durante a gravação, execute a ação problemática na primeira cópia do Visual Studio. É difícil corrigir problemas de desempenho específicos se eles não aparecerem dentro do tempo registrado.
Se a ação for menor que 30 segundos e puder ser repetida facilmente, repita a ação para demonstrar ainda mais o problema.
Para a maioria dos casos, um rastreamento de 60 segundos é suficiente para demonstrar os problemas, especialmente se a ação problemática durou (ou foi repetida) por mais de 30 segundos. A duração pode ser ajustada conforme necessário para capturar o comportamento que você gostaria de corrigir.
Clique em "Parar Registro" no Gravador de Etapas assim que a operação lenta ou o evento de CPU alta que você deseja relatar for concluído. Pode levar alguns minutos para processar o rastreamento de desempenho.
Após a conclusão, haverá vários anexos para seus comentários. Anexe arquivos adicionais que possam ajudar a reproduzir o problema (um projeto de exemplo, capturas de tela, vídeos etc.).
Envie os comentários.
Durante a gravação de um rastreamento de desempenho, se a operação lenta ou o uso elevado de CPU que você está relatando chegar ao fim, interrompa imediatamente a gravação. Se muitas informações forem coletadas, as informações mais antigas serão substituídas. Se o rastreamento não for interrompido em breve (dentro de alguns segundos) após a operação interessante, os dados de rastreamento úteis serão substituídos.
Não anexe diretamente rastreamentos de desempenho a itens de comentários existentes no site da Comunidade de Desenvolvedores. Solicitar/fornecer informações adicionais é um fluxo de trabalho com suporte na ferramenta interna "Relatar um Problema" do Visual Studio. Se um rastreamento de desempenho for necessário para resolver um item de comentários anterior, definiremos o estado do item de comentários como "Precisa de mais informações", que pode ser respondido da mesma forma que relatar um novo problema. Para obter instruções detalhadas, consulte seção "Precisa de mais informações" no documento da ferramenta Relatar um Problema.
Nota
Comentários mais valiosos: Para quase todos os problemas de lentidão/alto uso de CPU, o feedback mais valioso é uma descrição de alto nível do que você estava tentando fazer, juntamente com o rastreamento de desempenho (*.etl.zip) que captura como o sistema se comportava nesse período.
Rastreamentos de Desempenho Avançado
Os recursos de coleta de rastreamento na ferramenta Relatar um problema são suficientes para a maioria dos cenários. Mas há momentos em que é necessário mais controle sobre a coleção de rastreamento (por exemplo, rastreamento com um tamanho de buffer maior), nesse caso, o PerfView é uma ótima ferramenta a ser usada. Etapas para registrar manualmente o rastreamento de desempenho usando a ferramenta PerfView podem ser encontradas na página Gravando rastreamentos de desempenho com o PerfView.
Problemas fora do processo
Nota
A partir do Visual Studio 2019 versão 16.3, os logs fora de processo são anexados automaticamente aos comentários enviados usando a ferramenta Relatar um Problema. No entanto, se o problema for diretamente reproduzível, seguir as etapas abaixo ainda poderá ajudar a adicionar informações adicionais para ajudar a diagnosticar melhor o problema.
Há vários processos satélites que são executados paralelamente ao Visual Studio e fornecem vários recursos de fora do processo principal do Visual Studio. Se ocorrer um erro em um desses processos satélite, ele geralmente será observado no lado do Visual Studio como um 'StreamJsonRpc.RemoteInvocationException' ou um 'StreamJsonRpc.ConnectionLostException'.
O que torna esses tipos de problemas mais acionáveis é fornecer logs adicionais que podem ser coletados seguindo estas etapas:
Se esse for um problema diretamente reproduzível, comece excluindo a pasta %temp%/servicehub/logs. Se você não puder reproduzir esse problema, mantenha esta pasta intacta e ignore os seguintes marcadores:
- Definir a variável de ambiente global ServiceHubTraceLevel como All
- Reproduza o problema.
Baixe o Microsoft Visual Studio e o .NET Framework Log Collection Tool aqui.
Execute a ferramenta. Isso gera um arquivo zip para %temp%/vslogs.zip. Anexe esse arquivo aos seus comentários.