Condividi tramite


Eseguire il debug dell'app con GitHub Copilot in Visual Studio

Questo articolo illustra come eseguire il debug in modo più efficiente usando GitHub Copilot. Copilot può fornire correzioni del codice insieme ad analisi approfondite e spiegazioni sul funzionamento del codice. Consente di risolvere i bug proposti e spiega elementi come le eccezioni. Copilot comprende stack di chiamate, frame, nomi di variabili e valori. Di conseguenza, è possibile interagire con l'intelligenza artificiale compatibile con il debugger per porre domande dettagliate relative al codice e al debug dei problemi in generale.

Copilot offre inoltre un aiuto più preciso per alcuni scenari mirati, come le eccezioni, e per tutti quelli descritti in scenari migliorati dall'intelligenza artificiale per il debug. Nella maggior parte di questi scenari, cerca il pulsante Ask CopilotScreenshot di Ask Copilot e il pulsante. In questi scenari Copilot conosce già il contesto per le domande.

Per altre informazioni sui completamenti di GitHub Copilot in Visual Studio, vedere Informazioni sui completamenti di GitHub Copilot in Visual Studio.

Prerequisiti

Per iniziare, è necessario:

Eseguire il debug con Copilot

L'esempio semplice seguente illustra come ottenere assistenza per l'intelligenza artificiale usando la visualizzazione Chat inline.

Nota

È anche possibile ottenere assistenza usando la finestra chat separata selezionando Visualizza > Chat di GitHub Copilot. Per altre informazioni, vedere Che cos'è l'estensione GitHub Copilot Chat per Visual Studio?.

Avviare una sessione di debug

  1. In Visual Studio creare una nuova app console C#.

    Nella finestra iniziale scegliere Crea un nuovo progetto. Digitare console nella casella di ricerca, selezionare C# come linguaggio e quindi scegliere app console per .NET. Scegliere Avanti. Digitare un nome di progetto come ConsoleApp_Copilot e selezionare Avanti.

    Scegli il framework di destinazione consigliato oppure .NET 8, e quindi seleziona Crea.

    Se non viene visualizzato il modello di progetto App Console per .NET, vai a Tools>Get Tools and Features, che apre il programma di installazione di Visual Studio. Scegliere il carico di lavoro sviluppo di applicazioni desktop .NET, quindi scegliere Modifica.

    Visual Studio crea il progetto console visualizzato in esplora soluzioni nel riquadro destro.

  2. Sostituire il codice in Program.cs con il codice seguente:

    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. Fare clic con il pulsante destro del mouse sull'istruzione seguente e scegliere punto di interruzione>Inserisci punto di interruzione.

    int value = Int32.Parse(args[0]);
    
  4. Premere F5 oppure selezionare Avvia debug dal menu Debug.

    L'app viene sospesa in corrispondenza del punto di interruzione. La finestra Auto mostra che la variabile args ha un valore di string[0].

    screenshot della finestra Auto.

  5. Fare clic con il pulsante destro del mouse nel codice e scegliere Chiedi a Copilot per aprire la visualizzazione chat in linea.

    Consiglio

    In alternativa, è possibile fare clic con il pulsante destro del mouse su una variabile nella finestra Auto o Variabili locali oppure in una descrizione dati e scegliere Ask Copilot. Questo fornisce a Copilot il nome e il contesto della variabile, quindi non è necessario fornire il contesto manualmente nella chat.

  6. Digitare la domanda seguente nella visualizzazione Chat inline:

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

    Screenshot di Chat inline copilot.

    Quando si preme INVIO, Copilot fornisce una risposta in base alla comprensione del codice. Si potrebbe ottenere una risposta diversa da quella mostrata qui.

    Screenshot della domanda a cui Copilot ha risposto.

    Se Copilot ha una correzione suggerita per il tuo codice, te la mostra. In caso contrario, è possibile chiedere a Copilot un suggerimento di codice.

    Consiglio

    Nella chat inline usare il simbolo "#" e selezionare dall'elenco a discesa per distribuire informazioni specifiche a Copilot mentre vi si fa riferimento nella domanda. Ad esempio, se si seleziona una parte di codice e quindi si digita #, è possibile scegliere tale selezione dall'elenco a discesa #. È anche possibile usare il simbolo "#" per fare riferimento alle funzionalità dell'IDE visualizzate nell'elenco a discesa, ad esempio la finestra Variabili locali.

  7. In questo esempio scorrere fino alla fine della risposta di Copilot e selezionare la domanda di completamento alla fine della finestra chat inline, "Come posso gestire il caso quando non vengono passati argomenti al programma?"

    Screenshot della domanda di completamento di Copilot.

    Copilot mostra una correzione suggerita al codice.

    Screenshot della correzione suggerita da Copilot.

    Per applicare la correzione del codice, scegliere Accetta.

  8. Scegliere Annulla in modo da poter continuare ad apprendere altre funzionalità di Copilot nella sezione successiva.

Eseguire il debug di un'eccezione con Copilot

L'esempio semplice seguente illustra come ottenere assistenza per l'intelligenza artificiale quando si verifica un'eccezione e come aggiornare rapidamente il codice in base alle correzioni suggerite dall'intelligenza artificiale.

Avviare una sessione di debug

  • Mentre è in pausa nel debugger usando la stessa app di esempio, premere F11 o Debug>Esegui istruzione per eseguire l'istruzione corrente.

    Si verifica un IndexOutOfRangeException e l'app viene sospesa, mostrando l'eccezione.

    Per ottenere l'assistenza dell'intelligenza artificiale per gestire l'eccezione, passare alla sezione successiva.

Richiedere assistenza per l'intelligenza artificiale

  1. Quando l'applicazione è sospesa a causa dell'eccezione, selezionare il pulsante Chiedi Copilot.

    screenshot del pulsante Ask Copilot in un'eccezione.

    Se non è già aperto, viene visualizzata la finestra Chat di Copilot e viene fornita una valutazione dell'errore e del motivo per cui si è verificato. In questo esempio Copilot identifica una correzione del codice suggerita, un pulsante per copiare il codice e un pulsante anteprima per la correzione del codice.

    In caso di domande sull'eccezione, chiedile nella casella di testo Chiedi Copilot.

  2. Selezionare il pulsante Anteprima.

    screenshot del pulsante Anteprima nella finestra Chat di Copilot.

    Visual Studio mostra un'anteprima del codice con la correzione suggerita.

  3. Esaminare la correzione suggerita e scegliere Accetta per applicare il suggerimento del codice.

    Screenshot dell'anteprima del codice in Visual Studio.

  4. Riavviare il debugger.

    Questa volta non si verifica alcuna eccezione. È stato risolto!

Ottenere suggerimenti con punti di interruzione condizionali e punti di traccia

Copilot offre suggerimenti per punti di interruzione condizionali e punti di traccia specifici al tuo codice.

In questo esempio vengono mostrati suggerimenti di intelligenza artificiale per un punto di interruzione condizionale. Per i punti di traccia, l'assistenza di intelligenza artificiale funziona allo stesso modo.

  1. Rimuovere il punto di interruzione corrente facendo clic su di esso o facendo clic con il pulsante destro del mouse e scegliendo Elimina punto di interruzione.

  2. Sostituire la riga di codice seguente:

    names.Add("Major Major Major");
    

    con questo:

    // names.Add("Major Major Major");
    foreach (var item in args)
    {
       names.Add("Name: " + item);
    }
    
  3. A sinistra dell'istruzione names.Add("Name: " + item) fare clic con il pulsante destro del mouse nella barra e scegliere Inserisci punto di interruzione condizionale.

  4. Selezionare il campo dell'espressione e Copilot inizia a lavorare sui suggerimenti.

    Screenshot di Copilot che usa i suggerimenti del punto di interruzione condizionale.

  5. Quando vengono visualizzati i suggerimenti, scegliere uno come item == "John". Modificare il suggerimento in modo che il nome sia Fred.

    Screenshot del suggerimento di Copilot per il punto di interruzione condizionale.

  6. Per testare l'espressione condizionale:

    1. Fare clic con il pulsante destro del mouse sul progetto di ConsoleApp_Copilot in Esplora Soluzioni e scegliere Properties.

    2. Selezionare Debug>Generale>Aprire l'interfaccia utente dei profili di avvio del debug.

    3. Nel campo argomenti della riga di comando immettere 5 Fred Joe, in tre righe separate.

      Screenshot dell'inserimento di argomenti della riga di comando per il progetto.

    4. Riavviare il debugger.

    Quando il debugger viene sospeso nel punto di interruzione, controllare il valore di item e verificare che il valore corrente sia Fred.

Scenari avanzati dell'intelligenza artificiale

Copilot comprende stack di chiamate, frame, nomi di variabili e valori. Di conseguenza, è possibile interagire con l'intelligenza artificiale compatibile con il debugger per porre domande dettagliate relative al codice e al debug dei problemi in generale.

Copilot offre inoltre una guida più precisa per alcuni scenari di destinazione, ad esempio quelli descritti nella tabella seguente.

Funzionalità o scenario Collegamento
Eccezioni Consulta Eseguire il debug di un'eccezione con Copilot in questo articolo. L'aiuto per le eccezioni include aiuto per gli errori di rilevamento dei deadlock.
Variabili Consulta Debug con Copilot in questo articolo.
Punti di interruzione condizionali e punti di traccia Vedere Ottenere suggerimenti con punti di interruzione condizionali e punti di analisi in questo articolo.
Azioni rapide (lampadina) Consulta Ottieni assistenza con azioni rapide per l'IA.
Visualizzatore tabulare IEnumerable Consultare per modificare l'espressione del visualizzatore.
Valori restituiti in linea Vedere Visualizzare i valori restituiti delle chiamate ai metodi.
Descrizioni dei thread di riepilogo Vedere Visualizzazione thread (stack paralleli).
Dati analitici automatici per la profilatura Visualizza Ricevi assistenza dall'IA con approfondimenti automatici.

Nella maggior parte di questi scenari si ottiene assistenza mirata usando il pulsante Ask CopilotScreenshot di Ask Copilot. pulsante. Copilot conosce già il contesto per le domande. Ad esempio, conosce lo stack di chiamate corrente, la riga di codice che si sta chiedendo e il nome dell'eccezione (se si è verificato), quindi non è necessario fornire il contesto in chat. Copilot fornisce anche suggerimenti per l'uso di punti di interruzione condizionali e punti di traccia.