Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'agente del debugger è un assistente al debug basato su intelligenza artificiale che funziona tramite GitHub Copilot Chat per facilitare la riproduzione, l'isolamento e la correzione di bug controllando l'esecuzione e convalidando il lavoro sullo stato di runtime in tempo reale. L'agente dà il meglio di sé quando gli dai un obiettivo chiaro e gli permetti di gestire il processo di debug dall'inizio alla fine.
L'agente del debugger è ideale negli scenari in cui è necessario dimostrare che esiste un bug, verificare che una correzione funzioni, instrumentare il codice con punti di interruzione e punti di analisi e analizzare stack di chiamate complessi. Combinando le richieste in linguaggio naturale con il controllo del debugger, puoi muoverti lungo i flussi di lavoro di riproduzione, strumentazione, isolamento e correzione in modo più efficiente rispetto al solo debug manuale.
Come accedere all'agente del debugger
Aprire la finestra di Copilot Chat (Visualizza>Copilot Chat GitHub).
Selezionare Debugger dal menu a discesa della modalità in basso a sinistra nella finestra della chat oppure digitare
@debuggernel campo di input della chat quando si è in modalità Agent.Immettere un prompt che descrive l'attività di debug, sostituendo il testo segnaposto con le specifiche dello scenario.
Riproduzione e diagnosi dei bug
L'agente del debugger può riprodurre bug dalle descrizioni dei problemi e verificare che esistano nell'ambiente di runtime. Iniziate indirizzando l'agente a una descrizione di bug, a un link a un problema GitHub o a un bug di Azure DevOps, e lasciategli gestire l'intero ciclo.
Prompt di esempio:
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>.
Correzione della verifica e della convalida
Una volta ottenuta una correzione, sia che sia stata creata dall'agente sia da te, usa l'Agente debugger per verificare che la correzione risolva il problema e che vengano eseguiti tutti i percorsi di codice significativi.
Prompt di esempio:
Dai all'agente un modo autosufficiente per dimostrare che la correzione funziona, ad esempio con un test unitario o un piccolo programma di riproduzione da console, quindi fagli verificare uno specifico comportamento a runtime.
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>
Strumentazione e ispezione in fase di esecuzione
L'agente del debugger può impostare punti di interruzione condizionali e punti di traccia esattamente dove sono necessari, quindi eseguire il progetto per raccogliere i dati necessari. Questo approccio offre maggiore visibilità senza modificare manualmente il codice.
Prompt di esempio:
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.
Analisi dello stack di chiamate e flusso di controllo
Quando si è sospesi in corrispondenza di un punto di interruzione o di un'eccezione ed è necessario comprendere il percorso di esecuzione, l'agente del debugger può analizzare lo stack di chiamate e spiegare le operazioni eseguite dal thread corrente, incluso il flusso asincrono.
Prompt di esempio:
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.
Tip
È anche possibile ottenere l'analisi dello stack di chiamate con un clic: nella finestra Stack di chiamate selezionare Analizza con Copilot oppure usare Analizza con Copilot nella visualizzazione Thread in stack paralleli / per scenari multithreading.
Debug dei test unitari
L'agente del debugger può eseguire il debug dei test non superati direttamente dalla chat senza dover prima avviare il debugger.
Richiesta di esempio:
The test <TestName> is failing. Debug it, find the root cause of the failure, and suggest a fix.
Tip
È anche possibile avviare il debug di un test non riuscito da Esplora test o dall'indicatore CodeLens sopra il test nell'editor, quindi continuare la conversazione con l'agente del debugger da questa posizione. Questo è un modo semplice per passare a Copilot il contesto del test fallito.
Procedure consigliate per l'agente del debugger
Specificare i dati, non i comandi. L'agente del debugger non ha accesso alla shell o a PowerShell, quindi non può eseguire strumenti come
git.exeper l'utente. Incollare invece l'output effettivo. Ad esempio, incollare il testo di una diff anziché indicare all'agente di eseguire un comando diff.Lasciare che l'agente controlli l'esecuzione quando instrumenta il codice. Copilot può correggere gli errori nei punti di interruzione condizionali e nei punti di traccia solo quando controlla l'esecuzione. Preferisci "impostare un punto di interruzione condizionale... ed eseguire il mio progetto" piuttosto che "impostare un punto di interruzione condizionale" da solo.
Consentire all'agente di completare l'attività quando entra nello stato di pausa. Se l'agente gestisce l'esecuzione e la chat mostra ancora Copilot in funzione, non è necessario fare nulla. Per riprendere il controllo, selezionare il pulsante Arresta nella chat.
Contenuti correlati
- Eseguire il debug con Copilot