Partilhar via


Depurar seu aplicativo com o GitHub Copilot no Visual Studio

Neste artigo, você aprenderá como depurar de forma mais eficiente usando o GitHub Copilot. O Copilot pode fornecer correções de código, juntamente com análises aprofundadas 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 compreende pilhas de chamadas, quadros, nomes de variáveis e valores. Como resultado, podes interagir com uma IA ciente do depurador para fazer perguntas detalhadas relacionadas ao teu código e a questões 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 pelo botão Ask CopilotCaptura de ecrã do botão Ask Copilot.. Nesses cenários, o Copilot já conhece o contexto para suas perguntas.

Para obter mais informações sobre as Finalizações do Copiloto do GitHub no Visual Studio, consulte Sobre as Finalizações do Copiloto do GitHub no Visual Studio.

Pré-requisitos

Para começar, você precisa:

Cenários aprimorados por IA

O Copilot compreende pilhas de chamadas, quadros, nomes de variáveis e valores. Como resultado, podes interagir com uma IA ciente do depurador para fazer perguntas detalhadas relacionadas ao teu código e a questões de depuração em geral.

Além disso, o Copilot fornece uma ajuda mais precisa para alguns cenários direcionados, como os descritos na tabela a seguir.

Recurso ou cenário Ligação
Exceções Veja Depurar uma exceção com o Copilot neste artigo. Ajuda com exceções inclui ajuda com erros de deteção de impasse.
Variáveis Consulte Obter assistência para IA.
Análise de consulta LINQ Passe o cursor sobre as consultas LINQ durante a depuração no editor de código para ver o valor de retorno. Selecione o botão Analisar com Copilot para obter assistência de IA. Consulte Exibir valores de retorno de consultas LINQ.
Dicas de dados Consulte Obtenha assistência de IA com dicas de dados.
Pontos de interrupção condicionais e pontos de rastreio Consulte as 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 Obter assistência para IA.
Valores de retorno em linha Consulte Ver os valores de retorno das chamadas de método.
Valores em linha Consulte Exibir valores embutidos.
Depuração multithreaded Consulte Obter assistência de IA com a visualização Threads.
Teste de unidades Veja Obter assistência de IA para depurar testes
Inspecionar exceções com contexto de repositório Consulte Obter assistência de IA com contexto de repositório
Solução de problemas de pontos de interrupção Consulte Obter assistência para IA.

Na maioria desses cenários, você obtém assistência direcionada usando a ou Screenshot of Ask Copilot button.o botão Analisar com Copilot. O Copilot já conhece o contexto das suas perguntas. Por exemplo, ele conhece a pilha de chamadas atual, a linha de código sobre a qual você está perguntando e o nome da exceção (se houver), portanto, você não precisa fornecer contexto no bate-papo. O Copilot também fornece sugestões para o uso de pontos de interrupção condicionais e pontos de rastreamento.

Depurar utilizando o Copilot

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 separada de bate-papo selecionando Ver > Chat do GitHub Copilot. Para obter mais informações, consulte O que é a extensão GitHub Copilot Chat para Visual Studio?.

Iniciar uma sessão de depuração

  1. No Visual Studio, crie um novo aplicativo de console C#.

    Na janela Iniciar, escolha Criar um novo projeto. Escreva consola na caixa de pesquisa, selecione C# como idioma e, em seguida, escolha Aplicação de Consola para .NET. Escolha Próximo. Digite um nome de projeto como ConsoleApp_Copilot e selecione Avançar.

    Escolha a estrutura de destino recomendada ou .NET 8 e, em seguida, escolha Criar.

    Se você não vir o modelo de projeto do Console App para .NET, vá para Ferramentas >Obter Ferramentas e Recursos, que abre o Visual Studio Installer. Escolha a carga de trabalho de desenvolvimento de desktop .NET e depois escolha Modificar.

    O Visual Studio cria o projeto de console, que aparece em Gerenciador de Soluções no painel direito.

  2. Substitua o código no 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");
        }
    }
    
  3. Clique com o botão direito na instrução a seguir e escolha Ponto de interrupção>Inserir ponto de interrupção.

    int value = Int32.Parse(args[0]);
    
  4. Pressione F5 ou selecione Iniciar depuração no menu Depuração.

    O aplicativo pausa no ponto de interrupção. A janela Autos mostra que a variável args tem um valor de string[0].

    Captura de ecrã da janela Autos.

  5. Clique com o botão direito do mouse no código e escolha Ask Copilot para abrir a visualização de bate-papo embutida.

    Dica

    Como alternativa, pode clicar com o botão direito do rato numa variável na janela Autos ou Locals, ou numa dica de dados, e escolher Ask Copilot. Isso fornece ao Copilot o nome e o contexto da variável, para que você não precise fornecer contexto no bate-papo.

  6. Digite a seguinte pergunta no modo de exibição Chat embutido:

    Why does the args variable have a value of string[0]?
    

    Captura de tela do bate-papo do Copilot em linha.

    Quando você pressiona Enter, o Copilot fornece uma resposta com base em seu entendimento do seu código. (Você pode receber uma resposta diferente da mostrada aqui.)

    Screenshot que mostra a resposta do Copilot à pergunta.

    Se o Copilot tiver uma correção sugerida para o seu código, ele mostrará você. Caso contrário, pode pedir ao Copilot uma sugestão de código.

    Dica

    No bate-papo embutido, use o símbolo "#" e selecione na lista suspensa para passar informações específicas ao Copilot enquanto você as referencia na sua pergunta. Por exemplo, se selecionares uma parte do código e, em seguida, escreveres #, podes escolher essa seleção na lista suspensa #. Você também pode usar o símbolo "#" para referenciar funcionalidades do IDE que aparecem na lista suspensa, como a janela "Locais".

  7. 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?"

    Captura de ecrã da pergunta de acompanhamento do Copilot.

    O Copilot mostra uma correção sugerida para o seu código.

    Screenshot da correção sugerida pelo Copilot.

    Se quiser aplicar a correção de código, escolha Aceitar.

  8. 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ê encontrar 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

  • Quando pausado no depurador usando a mesma aplicação de exemplo, pressione F11 ou Debug>Step Into para executar a instrução atual.

    Ocorre um IndexOutOfRangeException e a aplicação pausa, mostrando a exceção.

    Para obter assistência de IA para a exceção, siga para a secção seguinte.

Peça ajuda para IA

  1. Com o aplicativo pausado na exceção, selecione o botão Ask Copilot.

    Captura de tela do botão Ask Copilot em uma exceção.

    Se ainda não estiver aberta, a janela Copilot Chat 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 de 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 Copiloto.

  2. Selecione o botão Pré-visualização.

    Captura de tela do botão Visualizar na janela Copilot Chat.

    O Visual Studio mostra uma visualização de código com a correção sugerida.

  3. Revise a correção sugerida e escolha Aceitar para aplicar a sugestão de código.

    Captura de tela da visualização de código no Visual Studio.

  4. Reinicie o depurador.

    Desta vez, nenhuma exceção ocorre. Foi corrigido!

Obtenha 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 seu código.

Neste exemplo, mostramos sugestões de IA para um ponto de interrupção condicional. Para os pontos de rastreamento, a assistência de IA funciona da mesma maneira.

  1. 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.

  2. Substitua a seguinte linha de código:

    names.Add("Major Major Major");
    

    com isso:

    // names.Add("Major Major Major");
    foreach (var item in args)
    {
       names.Add("Name: " + item);
    }
    
  3. À 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.

  4. Selecione o campo de expressão e o Copilot começa a trabalhar nas sugestões.

    Captura de tela do Copilot trabalhando em sugestões de ponto de interrupção condicional.

  5. Quando as sugestões aparecerem, escolha uma delas, como item == "John". Edite a sugestão para que o nome seja Fred.

    Captura de tela da sugestão do Copilot para o ponto de interrupção condicional.

  6. Para testar a expressão condicional:

    1. Clique com o botão direito do mouse no projeto ConsoleApp_Copilot no Gerenciador de Soluções e escolha Propriedades.

    2. Selecione Depuração>Geral>Abrir UI de perfis de inicialização de depuração.

    3. No campo Argumentos de linha de comando, digite 5 Fred Joeem três linhas separadas.

      Captura de tela da inserção de argumentos de linha de comando para o projeto.

    4. Reinicie o depurador.

    Quando o depurador pausa no ponto de interrupção, verifique o valor de item e confirme se o valor atual é Fred.