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.

Inoltre, Copilot offre assistenza più precisa per alcuni scenari di destinazione, ad esempio i seguenti:

  • Eccezioni
  • Variabili
  • Deadlock
  • Azioni rapide (lampadina)

Per ottenere assistenza per l'intelligenza artificiale durante il debug in questi scenari, cercare il Screenshot of Ask Copilot button.pulsante Chiedi copilot. In questi scenari 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.

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:

Ottenere assistenza per l'intelligenza artificiale per il debug dell'app

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.

    Scegliere il framework di destinazione consigliato o .NET 8 e quindi scegliere Crea.

    Se non viene visualizzato il modello di progetto App console per .NET, passare a Strumenti Ottieni strumenti>e funzionalità, che apre il Programma di installazione di Visual Studio. Scegliere il carico di lavoro Sviluppo per desktop .NET, quindi scegliere Modifica.

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

  2. Sostituire il codice nel file 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 Inserisci punto> di interruzione.

    int value = Int32.Parse(args[0]);
    
  4. Premere F5 o scegliere 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 .string[0]

    Screenshot della finestra Auto.

  5. Fare clic con il pulsante destro del mouse nel codice e scegliere Chiedi a Copilot di aprire la visualizzazione Chat inline.

    Suggerimento

    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 Chiedi 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 della chat di Copilot inline.

    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 con risposta a Copilot.

    Se Copilot ha una correzione suggerita per il codice, viene visualizzato. In caso contrario, è possibile chiedere a Copilot un suggerimento di codice.

    Suggerimento

    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 per continuare ad apprendere altre funzionalità di Copilot nella sezione successiva.

Ottenere assistenza per l'intelligenza artificiale per un'eccezione

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 in per eseguire l'istruzione corrente.

    Si IndexOutOfRangeException verifica e l'app viene sospesa, che mostra l'eccezione.

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

Richiedere assistenza per l'intelligenza artificiale

  1. Con l'applicazione sospesa nell'eccezione, selezionare il pulsante Ask Copilot ( 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, chiedere loro 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 assistenza per l'intelligenza artificiale con punti di interruzione condizionali e punti di traccia

Copilot offre suggerimenti per punti di interruzione condizionali e punti di traccia specifici del 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 il seguente:

    // 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 ConsoleApp_Copilot in Esplora soluzioni e scegliere Proprietà.

    2. Selezionare Debug>> dei profili di avvio del debug.

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

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

    4. Riavviare il debugger.

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

Ottenere assistenza per intelligenza artificiale nel visualizzatore tabulare IEnumerable

Per assistenza sull'intelligenza artificiale per il visualizzatore tabulare IEnumerable, vedere Modificare l'espressione del visualizzatore.

Ottenere assistenza per l'intelligenza artificiale per informazioni dettagliate automatiche

Oltre all'assistenza per il debug interattivo, Copilot fornisce informazioni dettagliate in Informazioni dettagliate sull'utilizzo della CPU. Fornisce informazioni e informazioni dettagliate correlate a un set di informazioni dettagliate specifiche sulle prestazioni. Con Copilot, porre domande sulle funzioni sui percorsi ad accesso frequente identificati nel codice, che consentono di produrre codice più efficiente o conveniente.

Il pulsante Ask Copilot viene visualizzato anche se non vengono identificate informazioni specifiche sulle prestazioni. Selezionare Chiedi a Copilot per imparare da Copilot e iniziare a porre domande.

Animazione dell'uso di Copilot con l'utilizzo della CPU.