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 itens 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 de depurador para fazer perguntas detalhadas relacionadas ao seu código e a problemas de depuração em geral.
Além disso, o Copilot fornece ajuda mais precisa para alguns cenários direcionados, como Exceções, e todos os descritos nos cenários aprimorados por IA para depuração. Na maioria desses cenários, procure o botão Perguntar ao Copilot. Nesses cenários, Copilot já conhece o contexto de suas perguntas.
Para obter mais informações sobre o GitHub Copilot Completions no Visual Studio, confira Sobre o GitHub Copilot Completions no Visual Studio.
Pré-requisitos
Para começar, você precisa:
Visual Studio 2022 versão 17.8 ou posterior
Entrar no Visual Studio usando uma conta do GitHub com Acesso ao Copilot
** Você pode usar GitHub Copilot gratuitamente. Inscreva-se e aproveite a IA para codificar com mais rapidez e eficiência.GitHub Copilot no Visual Studio
Chat do 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.
Depurar usando o Copilot
O exemplo simples a seguir mostra como obter assistência de IA usando o modo de exibição de Chat embutido.
Observação
Você também pode obter ajuda usando a janela de Chat separada selecionando Exibir > GitHub Copilot Chat. Para obter mais informações, consulte O que é a extensão do GitHub Copilot Chat para Visual Studio?.
Iniciar uma sessão de depuração
No Visual Studio, crie um novo aplicativo de Console em C#.
Na janela inicial, escolha Criar um novo projeto. Digite console na caixa de pesquisa, selecione C# como o idioma e, em seguida, escolha Aplicativo de Console para .NET. Selecione Próximo. Digite um nome de projeto como ConsoleApp_Copilot e selecione Próximo.
Escolha o framework de destino recomendado ou o .NET 8 e, em seguida, escolha Criar.
Caso não veja o modelo de projeto Aplicativo de Console para o .NET, acesse Ferramentas>Obter Ferramentas e Recursos e o Visual Studio Installer será aberto. Escolha a carga de trabalho Desenvolvimento de área de trabalho do .NET e, em seguida, selecione Modificar.
O Visual Studio cria o projeto de console, que aparece no Gerenciador de Soluções no painel direito.
Substitua o código em Program.cs pelo seguinte código:
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 instruçã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 Pergunte ao Copilot para abrir a visualização de Chat integrada.
Gorjeta
Como alternativa, você pode clicar com o botão direito do mouse em uma variável na janela Autos ou Locais, ou escolher uma dica de dados, e selecionar Pergunte ao Copilot. Isso fornece ao Copilot o nome e o contexto da variável, portanto, você não precisa fornecer contexto por conta própria no chat.
Digite a seguinte pergunta no modo de exibição de Chat embutido:
Why does the args variable have a value of string[0]?
Quando você pressiona Enter, o Copilot fornece uma resposta com base na compreensão do código. (Você pode obter uma resposta diferente do que é mostrado aqui.)
Se o Copilot tiver uma correção sugerida para seu código, ele lhe mostrará. Caso contrário, você pode pedir uma sugestão de código ao Copilot.
Gorjeta
No Chat embutido, use o símbolo "#" e selecione na lista suspensa para passar informações específicas ao Copilot, enquanto você faz referência a elas em sua pergunta. Por exemplo, se você selecionar uma parte do código e digitar #, poderá escolher essa seleção na lista suspensa denominada #. Você também pode usar o símbolo "#" para fazer referência aos 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 Chat embutida: "Como posso lidar com o caso quando nenhum argumento é passado para o programa?"
Copilot mostra uma correção sugerida ao seu código.
Se você 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.
Depurar uma exceção com o Copilot
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 em correções sugeridas por IA.
Iniciar uma sessão de depuração
Enquanto estiver pausado no depurador usando o mesmo aplicativo de exemplo, pressione a tecla F11 ou Depurar>Intervir para executar a instrução atual do programa.
Um
IndexOutOfRangeException
ocorre e o aplicativo pausa, mostrando a exceção.Para obter assistência de IA para a exceção, prossiga para a próxima seção.
Solicitar assistência de IA
Com o aplicativo pausado na exceção, selecione o botão Pergunte ao Copilot.
Se ainda não estiver aberta, a janela de 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, faça-as na caixa de texto Perguntar Copilot.
Selecione o botão Versão prévia.
O Visual Studio mostra uma visualização de código com a correção sugerida.
Examine a correção sugerida e escolha Aceitar para aplicar a sugestão de código.
Reinicie o depurador.
Desta vez, nenhuma exceção ocorre. Foi corrigido!
Receba sugestões com pontos de interrupção condicionais e pontos de rastreamento
O Copilot oferece sugestões para pontos de interrupção condicionais e pontos de rastreamento específicos para o código.
Neste exemplo, mostramos sugestões de IA para um ponto de interrupção condicional. Para pontos de rastreamento, a assistência de IA funciona da mesma maneira.
Remova o ponto de interrupção atual clicando nele ou clicando 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 margem e escolha Inserir Ponto de Interrupção Condicional.Selecione o campo de expressão e Copilot começa a trabalhar em sugestões.
Quando as sugestões aparecerem, escolha uma, 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 dos 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 confirme se o valor atual éFred
.
Cenários aprimorados para IA
O Copilot entende pilhas de chamadas, quadros, nomes de variáveis e valores. Como resultado, você pode interagir com a IA com reconhecimento de depurador para fazer perguntas detalhadas relacionadas ao seu código e a problemas de depuração em geral.
Além disso, o Copilot fornece ajuda mais precisa para alguns cenários direcionados, como aqueles descritos na tabela a seguir.
Recurso ou cenário | Link |
---|---|
Exceções | Confira Depurar uma exceção com o Copilot neste artigo. A ajuda com exceções inclui auxílio na detecção de erros de deadlock. |
Variáveis | Consulte Depuração usando o Copilot neste artigo. |
Pontos de interrupção condicionais e pontos de rastreamento | Consulte Obter sugestões com pontos de interrupção condicionais e pontos de rastreamento neste artigo. |
Ações Rápidas (lâmpada) | Consulte Obter assistência de IA com ações rápidas. |
Visualizador tabular IEnumerable | Consulte Modificar a expressão do visualizador. |
Valores retornados embutidos | Consulte Exibir resultados retornados de chamadas de método. |
Descrições resumidas de tópicos | Consulte Exibição de threads (pilhas paralelas). |
Insights automáticos para criação de perfil | Consulte Obter assistência da IA com insights automáticos. |
Na maioria desses cenários, você obtém assistência direcionada usando o botão Perguntar ao Copilot. Copilot já sabe o contexto para suas perguntas. Por exemplo, ele conhece a pilha de chamadas atual, a linha de código que você está perguntando e o nome da exceção (se ocorreu), portanto, você não precisa fornecer contexto por conta própria no chat. O Copilot também fornece sugestões para o uso de pontos de interrupção condicionais e pontos de rastreamento.