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 a IA com capacidade de reconhecer depuradores para fazer perguntas detalhadas relacionadas ao teu código e a problemas de depuração em geral.

Além disso, o Copilot fornece uma ajuda mais precisa para alguns cenários específicos, como os seguintes:

  • Exceções
  • Variáveis
  • Impasses
  • Ações rápidas (lâmpada)

Para obter assistência de IA enquanto estiver depurando nestes cenários, procure o botão Perguntar ao Copiloto Captura de ecrã do botão Perguntar ao Copiloto. botão. Nesses cenários, o Copilot já conhece o contexto para 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.

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:

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 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. Digite de console na caixa de pesquisa, selecione C# como idioma e escolha Aplicativo de Console 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 o workload de desenvolvimento de área de trabalho .NET e, em seguida, 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 do rato na instrução seguinte 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 Depurar.

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

    Screenshot 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 numa variável na janela Autos ou Locals, ou num tooltip, 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 do Copilot respondeu à 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 entregar informações específicas ao Copilot enquanto você as referencia em sua pergunta. Por exemplo, se você selecionar uma parte do código e, em seguida, digitar #, poderá escolher essa seleção na lista suspensa #. Você também pode usar o símbolo "#" para fazer referência aos recursos do IDE que aparecem no menu suspenso, como a janela "Locals".

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

Obtenha assistência de IA para uma exceção

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

  • Enquanto estiver 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 próxima seção.

Peça ajuda para IA

  1. Com a aplicação pausada 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 assistência de IA 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 rato 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, introduza 5 Fred Joe, em 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.

Obtenha assistência de IA no visualizador tabular IEnumerable

Para obter assistência de IA para o visualizador tabular IEnumerable, consulte Modificar a expressão do visualizador.

Obtenha assistência de IA para insights automáticos

Além da assistência interativa de depuração, o Copilot fornece informações detalhadas noUso da CPU Auto Insights. 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 hot paths identificados em seu código, o que pode ajudá-lo a produzir um código mais eficiente ou econômico.

O botão Ask Copilot é exibido mesmo que nenhum insight de desempenho específico seja identificado. Selecione Pergunte ao Copilot para aprender com o Copilot e começar a fazer perguntas.

Animação do uso do Copilot com o uso da CPU.