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.
O Agente de Depuração é um assistente de depuração com tecnologia de IA que funciona no GitHub Copilot Chat para ajudá-lo a reproduzir, isolar e corrigir bugs, controlando a execução e validando o trabalho com base no estado do runtime em tempo real. O agente é mais poderoso quando você lhe dá uma meta clara e permite que ele gerencie o fluxo de trabalho de depuração de ponta a ponta.
O Agente de Depurador se destaca em cenários em que você precisa provar que existe um bug, verificar se uma correção funciona, instrumentar código com pontos de interrupção e pontos de rastreamento e analisar pilhas de chamadas complexas. Ao combinar solicitações em linguagem natural com o controle do depurador, você pode percorrer os fluxos de trabalho de reprodução-instrumentação-isolamento-correção com mais eficiência do que apenas com a depuração manual.
Como acessar o Agente do Depurador
Abra a janela do Copilot Chat (Exibir>GitHub Copilot Chat).
Selecione Depurador no menu suspenso de modo no canto inferior esquerdo da janela de bate-papo ou digite
@debuggerna entrada de bate-papo enquanto estiver no modo Agente.Insira um prompt descrevendo sua tarefa de depuração, substituindo o texto de espaço reservado pelos detalhes do seu cenário.
Reprodução e diagnóstico de bugs
O Agente de Depuração pode reproduzir bugs com base em descrições de problemas e confirmar que eles ocorrem em seu ambiente de execução. Comece direcionando o agente para uma descrição de bug, um link de issue no GitHub ou um bug no Azure DevOps e deixe-o executar todo o ciclo.
Prompts de exemplo:
Investigate/fix/debug the bug described in <issue link>. Reproduce the failure, find the root cause with the debugger, and propose a fix.
When I <do these steps>, I expect <expected result> but instead I see <actual result>. Debug the problem, find where the code goes wrong, and suggest a fix.
Create a minimal repro for the following issue, then run it under the debugger to confirm the failure and show me the runtime state that causes it: <bug description>.
Corrigir verificação e validação
Depois que você tiver uma correção, seja ela criada pelo agente ou por você, use o Agente de Depuração para verificar se a correção resolve o problema e se todos os caminhos de código significativos são testados.
Prompts de exemplo:
Forneça ao agente uma maneira independente de comprovar que a correção funciona — um teste unitário ou uma pequena reprodução no console — e, em seguida, faça com que ele verifique o comportamento específico em tempo de execução.
Set breakpoints at <specific locations>, debug, and verify that <variable> has the value <expected value> and that <behavior> happens as expected.
I'm working on a change to make my code handle <new feature>. As part of that, I broke the following scenario: <repro steps>. Debug the problem and find where my code went wrong. Here are my changes: <paste diff here>
Instrumentação e inspeção em tempo de execução
O Agente de Depurador pode definir pontos de interrupção condicionais e pontos de rastreamento exatamente onde você precisa deles e, em seguida, executar seu projeto para coletar os dados necessários. Essa abordagem oferece mais visibilidade sem editar manualmente seu código.
Prompts de exemplo:
Set a breakpoint at the start of ProcessFile that breaks only when the file name starts with "data12345", then launch my project.
I need more visibility into <area of code>. Add tracepoints that log <the values you care about> at the key points in this flow, then run my project and show me the trace output.
Análise de pilha de chamadas e fluxo de controle
Quando você pausa em um ponto de interrupção ou exceção e precisa entender o caminho de execução, o Agente de Depuração pode analisar sua pilha de chamadas e explicar o que a thread atual está fazendo, incluindo o fluxo assíncrono.
Prompts de exemplo:
Analyze the current call stack and explain what this thread is doing and how it got here, including the async flow. Point out the frame most likely responsible for <the problem>.
Why is my code taking the wrong branch and not reaching <this line>? Set a breakpoint there and run the app. If it isn't hit, set breakpoints at the upstream decision points and inspect the actual condition values to find where control flow diverges.
Dica
Você também pode obter a análise da pilha de chamadas com um clique: na janela Pilha de Chamadas, selecione Analisar com o Copilot ou use Analisar com o Copilot na exibição Pilhas Paralelas / Threads para cenários com múltiplas threads.
Depuração de testes unitários
O Agente do Depurador pode depurar testes com falha diretamente do chat sem exigir que você inicie o depurador primeiro.
Exemplo de prompt:
The test <TestName> is failing. Debug it, find the root cause of the failure, and suggest a fix.
Dica
Você também pode iniciar a depuração de um teste com falha no Gerenciador de Testes ou no indicador CodeLens acima do teste no editor e continuar a conversa com o Agente do Depurador a partir daí. Essa é uma maneira fácil de entregar o contexto do teste com falha para Copilot.
Práticas recomendadas para o Agente de Depurador
Forneça dados, não comandos. O Agente do Depurador não tem acesso ao Shell ou ao PowerShell, portanto, ele não pode executar ferramentas como
git.exepara você. Em vez disso, cole a saída real. Por exemplo, cole o conteúdo de um diff em vez de dizer ao agente para executar o comando diff.Permitir que o agente controle a execução quando ele instrumenta o código. O Copilot pode corrigir erros em pontos de interrupção condicionais e pontos de rastreamento somente quando estiver controlando a execução. Prefira "definir um ponto de interrupção condicional... e executar meu projeto" em vez de "definir um ponto de interrupção condicional" por conta própria.
Deixe o agente terminar quando entrar no estado de interrupção. Se o agente estiver controlando a execução e o chat ainda mostrar o Copilot em execução, você não precisa fazer nada. Para retomar o controle, selecione o botão parar no chat.