Depurar seu aplicativo com o GitHub Copilot no Visual Studio
Neste artigo, você aprenderá a depurar com mais eficiência usando o GitHub Copilot. O Copilot pode fornecer correções de código, juntamente com análises detalhadas e explicações de como o código funciona. Ele ajuda com correções propostas para bugs e explica coisas como exceções. O Copilot entende pilhas de chamadas, quadros, nomes de variáveis e valores. Como resultado, você pode interagir com a IA com reconhecimento do depurador para fazer perguntas detalhadas relacionadas ao seu código e aos problemas de depuração em geral.
Além disso, o Copilot fornece ajuda mais precisa para alguns cenários direcionados, como os seguintes:
- Exceções
- Variáveis
- Deadlocks
- Ações rápidas (lâmpada)
Para obter assistência de IA enquanto estiver depurando nesses cenários, procure o botão Pergunte ao Copilot. Nesses cenários, o Copilot já conhece o contexto das suas perguntas. Por exemplo, ele conhece a pilha de chamadas atual, a linha de código da sua pergunta e o nome da exceção (se houver), para que você não precise fornecer contexto no chat. O Copilot também fornece sugestões de uso de pontos de interrupção condicionais e tracepoints.
Para obter mais informações sobre as Conclusões do GitHub Copilot no Visual Studio, consulte Sobre as Conclusões do GitHub Copilot no Visual Studio.
Pré-requisitos
Para começar, você precisa do seguinte:
Visual Studio 2022 versão 17.8 ou posterior
Assinatura ativa do GitHub Copilot for Individuals ou do GitHub Copilot for Business
GitHub Copilot no Visual Studio
-
Observação
Se você tiver problemas de autenticação após instalar a extensão, consulte Solucionar problemas de autenticação com o GitHub Copilot Chat.
Obtenha assistência de IA para depurar seu aplicativo
O exemplo simples a seguir mostra como obter assistência de IA usando a visualização de bate-papo embutida.
Observação
Você também pode obter ajuda usando a janela de bate-papo separada selecionando Exibir > bate-papo do GitHub Copilot. Para obter mais informações, consulte O que é a extensão de bate-papo do GitHub Copilot para Visual Studio?
Iniciar uma sessão de depuração
No Visual Studio, crie um aplicativo de console em C#.
Na tela Iniciar, selecione Criar um novo projeto. Digite console na caixa de pesquisa, selecione C# como a linguagem e escolha Aplicativo de Console para .NET. Escolha Próxima. Digite um nome de projeto, como ConsoleApp_Copilot, e selecione Avançar.
Escolha a estrutura de destino recomendada ou o .NET 8 e escolha Criar.
Caso não veja o modelo de projeto Aplicativo de Console para o .NET, acesse Ferramentas>Obter Ferramentas e Recursos e o Instalador do Visual Studio será aberto. Escolha a carga de trabalho Desenvolvimento de área de trabalho do .NET e, em seguida, selecione Modificar.
O Visual Studio criará o projeto de console, que aparecerá no Gerenciador de Soluções no painel à direita.
Substitua o código em Program.cs pelo código a seguir:
using System; using System.Collections.Generic; public class Example { public static void Main(string[] args) { int value = Int32.Parse(args[0]); List<String> names = null; if (value > 0) names = new List<String>(); names.Add("Major Major Major"); } }
Clique com o botão direito do mouse na declaração a seguir e escolha Ponto de Interrupção>Inserir Ponto de Interrupção.
int value = Int32.Parse(args[0]);
Pressione F5 ou selecione Iniciar Depuração no menu Depurar.
O aplicativo pausa no ponto de interrupção. A janela Autos mostra que a variável args tem um valor de
string[0]
.Clique com o botão direito do mouse no código e escolha Perguntar ao Copilot para abrir a visualização de bate-papo embutida.
Dica
Como alternativa, você pode clicar com o botão direito do mouse em uma variável na janela Autos ou Locais, ou em uma dica de dados, e escolher Perguntar ao Copilot. Isso fornece ao Copilot o nome e o contexto da variável, para que você não precise fornecer contexto no chat.
Digite a seguinte pergunta no modo de exibição de bate-papo embutido:
Why does the args variable have a value of string[0]?
Quando você pressiona Enter, o Copilot fornece uma resposta com base em sua compreensão do seu código. (Você pode obter uma resposta diferente da mostrada aqui.)
Se o Copilot tiver uma correção sugerida para o seu código, ele mostrará a você. Caso contrário, você pode pedir ao Copilot uma sugestão de código.
Dica
No chat embutido, use o símbolo "#" e selecione na lista suspensa para fornecer ao Copilot informações específicas, que você referencia em sua pergunta. Por exemplo, se você selecionar uma parte do código e digitar #, poderá fazer essa seleção na lista suspensa #. Você também pode usar o símbolo "#" para referenciar os recursos do IDE que aparecem na lista suspensa, como a janela Locais.
Neste exemplo, role até o final da resposta do Copilot e selecione a pergunta de acompanhamento no final da janela de bate-papo embutida, "Como posso lidar com o caso quando nenhum argumento é passado para o programa?"
O Copilot mostra uma correção sugerida para o seu código.
Se quiser aplicar a correção de código, escolha Aceitar.
Escolha Cancelar para que possamos continuar aprendendo outros recursos do Copilot na próxima seção.
Obtenha assistência de IA para uma exceção
O exemplo simples a seguir mostra como obter assistência de IA quando você encontra uma exceção e como atualizar rapidamente seu código com base nas correções sugeridas pela IA.
Iniciar uma sessão de depuração
Enquanto estiver pausado no depurador usando o mesmo aplicativo de exemplo, pressione F11 ou Depurar>Intervir para executar a instrução atual.
Um
IndexOutOfRangeException
ocorre e o aplicativo pausa, mostrando a exceção.Para obter assistência de IA para a exceção, vá para a próxima seção.
Solicitar assistência com IA
Com o aplicativo pausado na exceção, selecione o botão Pergunte ao Copilot.
Se ainda não estiver aberta, a janela Chat do Copilot será exibida e fornecerá uma avaliação do erro e por que ele ocorreu. Neste exemplo, o Copilot identifica uma correção de código sugerida, um botão para copiar código e um botão Pré-visualização para a correção de código.
Se você tiver dúvidas sobre a exceção, pergunte-as na caixa de texto Pergunte ao Copilot.
Selecione o botão Visualizar.
O Visual Studio mostra uma pré-visualização de código com a correção sugerida.
Revise a correção sugerida e escolha Aceitar para aplicar a sugestão de código.
Reinicie o depurador.
Desta vez, nenhuma exceção ocorre. O problema foi corrigido.
Obtenha assistência de IA com pontos de interrupção condicionais e tracepoints
O Copilot fornece sugestões de pontos de interrupção condicionais e tracepoints específicos para seu código.
Neste exemplo, mostramos as sugestões de IA de um ponto de interrupção condicional. Para tracepoints, a assistência de IA funciona da mesma maneira.
Remova o ponto de interrupção atual clicando nele ou clique com o botão direito do mouse e escolha Excluir ponto de interrupção.
Substitua a seguinte linha de código:
names.Add("Major Major Major");
por este:
// names.Add("Major Major Major"); foreach (var item in args) { names.Add("Name: " + item); }
À esquerda da instrução
names.Add("Name: " + item)
, clique com o botão direito do mouse na calha e escolha Inserir ponto de interrupção condicional.Selecione o campo de expressão e o Copilot começará a trabalhar nas sugestões.
Quando as sugestões aparecerem, escolha uma delas como
item == "John"
. Edite a sugestão para que o nome sejaFred
.Para testar a expressão condicional:
Clique com o botão direito do mouse no projeto ConsoleApp_Copilot no Gerenciador de Soluções e escolha Propriedades.
Selecione Depurar>Geral>Abrir interface do usuário de perfis de inicialização de depuração.
No campo Argumentos de linha de comando, insira
5 Fred Joe
em três linhas separadas.Reinicie o depurador.
Quando o depurador pausar no ponto de interrupção, verifique o valor de
item
e certifique-se de que o valor atual sejaFred
.
Obtenha assistência de IA no visualizador tabular IEnumerable
Para obter assistência de IA para o visualizador de tabela IEnumerable, consulte Modificar a expressão do visualizador.
Obter assistência de IA para insights automáticos
Além da assistência de depuração interativa, o Copilot fornece informações detalhadas nos insights automáticos de Uso da CPU Insights Automáticos. Ele fornece informações e insights relacionados a um conjunto de insights de desempenho específicos. Com o Copilot, faça perguntas sobre funções nos caminhos críticos identificados em seu código, o que pode ajudá-lo a produzir um código mais eficiente ou econômico.
O botão Perguntar ao Copilot é exibido mesmo que nenhum insight de desempenho específico seja identificado. Selecione Perguntar ao Copilot para aprender com o Copilot e comece a fazer perguntas.