Dela via


Felsöka din app med GitHub Copilot i Visual Studio

I den här artikeln får du lära dig hur du felsöker mer effektivt med GitHub Copilot. Copilot kan tillhandahålla kodkorrigeringar tillsammans med djupgående analys och förklaringar av hur kod fungerar. Det hjälper till med föreslagna korrigeringar av buggar och förklarar saker som undantag. Copilot förstår anropsstackar, ramar, variabelnamn och värden. Därför kan du interagera med den felsökningsmedvetna AI:n för att ställa detaljerade frågor som rör din kod och felsöka problem i allmänhet.

Dessutom ger Copilot mer exakt hjälp för vissa målscenarier, till exempel undantag, och alla de som beskrivs i AI-förbättrade scenarier för felsökning. I de flesta av dessa scenarier letar du efter knappen Fråga CopilotSkärmbild av knappen Fråga Copilot. knapp. I dessa scenarier känner Copilot redan till kontexten för dina frågor.

Mer information om GitHub Copilot-slutföranden i Visual Studio finns i Om GitHub Copilot-slutföranden i Visual Studio.

Förutsättningar

För att komma igång behöver du:

Felsöka med Hjälp av Copilot

Följande enkla exempel visar hur du får AI-hjälp med hjälp av den infogade chattvyn.

Obs

Du kan också få hjälp med det separata chattfönstret genom att välja View > GitHub Copilot Chat. Mer information finns i Vad är GitHub Copilot Chat-tillägget för Visual Studio?.

Starta en felsökningssession

  1. Skapa en ny C#-konsolapp i Visual Studio.

    I startfönstret väljer du Skapa ett nytt projekt. Skriv konsol i sökrutan, välj C# som språk och välj sedan Console App för .NET. Välj Nästa. Skriv ett projektnamn som ConsoleApp_Copilot och välj Nästa.

    Välj antingen det rekommenderade målramverket eller .NET 8 och välj sedan Skapa.

    Om du inte ser projektmallen Console App för .NET går du till Tools>Hämta verktyg och funktioner, som öppnar Installationsprogrammet för Visual Studio. Välj arbetsbelastningen för .NET-skrivbordsutveckling och välj då Ändra.

    Visual Studio skapar konsolprojektet, som visas i Solution Explorer i det högra fönstret.

  2. Ersätt koden i Program.cs med följande kod:

    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. Högerklicka på följande instruktion och välj Brytpunkt>Infoga brytpunkt.

    int value = Int32.Parse(args[0]);
    
  4. Tryck på F5 eller välj Starta felsökning på menyn Felsökning.

    Appen pausar vid brytpunkten. Fönstret Autos visar att args-variabeln har värdet string[0].

    Skärmbild av fönstret Autos.

  5. Högerklicka i koden och välj Be Copilot att öppna den infogade chattvyn.

    Tips

    Du kan också högerklicka på en variabel i fönstret Autos eller Locals eller i ett datatips och välja Fråga Copilot. Detta ger Copilot variabelnamnet och kontexten, så du behöver inte ange kontext själv i chatten.

  6. Skriv följande fråga i den infogade chattvyn:

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

    Skärmbild av infogad Copilot Chat.

    När du trycker på Returger Copilot ett svar baserat på dess förståelse av din kod. (Du kan få ett annat svar än vad som visas här.)

    Skärmbild av av Copilot besvarad fråga.

    Om Copilot har en föreslagen korrigering för din kod visas den. Annars kan du be Copilot om ett kodförslag.

    Tips

    I den infogade chatten använder du symbolen "#" och väljer i listrutan för att lämna ut specifik information till Copilot medan du refererar till den i din fråga. Om du till exempel väljer en del av koden och sedan skriver #, kan du välja det valet i listrutan #. Du kan också använda symbolen "#" för att referera till IDE-funktioner som visas i listrutan, till exempel fönstret Lokal.

  7. I det här exemplet bläddrar du till slutet av Copilot-svaret och väljer uppföljningsfrågan i slutet av det infogade chattfönstret, "Hur kan jag hantera ärendet när inga argument skickas till programmet?"

    Skärmbild av Copilot-uppföljningsfråga.

    Copilot visar en föreslagen korrigering av koden.

    Skärmbild av Copilots föreslagna korrigering.

    Om du vill använda kodkorrigeringen väljer du Acceptera.

  8. Välj Avbryt så att vi kan fortsätta lära oss andra funktioner i Copilot i nästa avsnitt.

Felsöka ett undantag med Copilot

Följande enkla exempel visar hur du får AI-hjälp när du stöter på ett undantag och hur du snabbt uppdaterar koden baserat på AI-föreslagna korrigeringar.

Starta en felsökningssession

  • När du har pausat felsökningsprogrammet med samma exempelapplikation trycker du på F11 eller Felsöka>Gå in i för att köra den aktuella instruktionen.

    En IndexOutOfRangeException inträffar och appen pausar och visar undantaget.

    Om du vill få AI-hjälp för undantaget fortsätter du till nästa avsnitt.

Be om AI-hjälp

  1. När programmet har pausats på undantaget väljer du knappen Fråga Copilot.

    Skärmdump av knappen Fråga Copilot i ett undantag.

    Om den inte redan är öppen visas Copilot Chat-fönstret och ger en utvärdering av felet och varför det inträffade. I det här exemplet identifierar Copilot en föreslagen kodkorrigering, en knapp för att kopiera kod och en förhandsgranskningsknapp för kodkorrigeringen.

    Om du har frågor om undantaget kan du ställa dem i textrutan Fråga Copilot.

  2. Välj knappen , förhandsgranska.

    Skärmbild av knappen Förhandsversion i Copilot Chat-fönstret.

    Visual Studio visar en förhandsgranskning av koden med den föreslagna korrigeringen.

  3. Granska den föreslagna korrigeringen och välj Acceptera för att tillämpa kodförslaget.

    Skärmbild av förhandsgranskning av kod i Visual Studio.

  4. Starta om felsökningsprogrammet.

    Den här gången inträffar inget undantag. Det har åtgärdats!

Få förslag med villkorsstyrda brytpunkter och spårningspunkter

Copilot ger dig förslag på villkorliga brytpunkter och spårpunkter som är specifika för din kod.

I det här exemplet visar vi AI-förslag för en villkorlig brytpunkt. För spårningspunkter fungerar AI-hjälpen på samma sätt.

  1. Ta bort den aktuella brytpunkten genom att klicka på den eller högerklicka och välja Ta bort brytpunkt.

  2. Ersätt följande kodrad:

    names.Add("Major Major Major");
    

    med detta:

    // names.Add("Major Major Major");
    foreach (var item in args)
    {
       names.Add("Name: " + item);
    }
    
  3. Till vänster om names.Add("Name: " + item)-instruktionen högerklickar du i marginalen och väljer Infoga villkorsstyrd brytpunkt.

  4. Välj uttrycksfältet och Copilot börjar arbeta med förslag.

    Skärmbild av Copilot som arbetar med förslag på villkorlig brytpunkt.

  5. När förslagen visas väljer du en sådan som item == "John". Redigera förslaget så att namnet blir Fred.

    Skärmbild av Copilot-förslag för villkorsstyrd brytpunkt.

  6. Testa villkorsuttrycket:

    1. Högerklicka på projektet ConsoleApp_Copilot i Solution Explorer och välj Egenskaper.

    2. Välj Felsökning>Allmänt>Öppna användargränssnittet för startprofiler för felsökning.

    3. I fältet kommandoradsargument anger du 5 Fred Joepå tre separata rader.

      Skärmbild av hur du anger kommandoradsargument för projektet.

    4. Starta om felsökningsprogrammet.

    När felsökningsprogrammet pausar vid brytpunkten kontrollerar du värdet för item och kontrollerar att det aktuella värdet är Fred.

AI-förbättrade scenarier

Copilot förstår anropsstackar, ramar, variabelnamn och värden. Därför kan du interagera med den felsökningsmedvetna AI:n för att ställa detaljerade frågor som rör din kod och felsöka problem i allmänhet.

Dessutom ger Copilot mer exakt hjälp för vissa målscenarier, till exempel de som beskrivs i följande tabell.

Funktion eller scenario Länk
Undantag Se Felsöka ett undantag med Copilot i den här artikeln. Hjälp med undantag omfattar hjälp med fel vid identifiering av dödlägen.
Variabler Se Felsöka med hjälp av Copilot i den här artikeln.
Villkorliga brytpunkter och spårningspunkter Se Få förslag med villkorsstyrda brytpunkter och spårningspunkter i den här artikeln.
Snabbåtgärder (glödlampa) Se Få AI-hjälp med Snabbåtgärder.
IEnumerable tabellvisualiserare Se Ändra visualiseraruttrycket.
Infogade returvärden Se Visa returvärden för metodanrop.
Sammanfattning av trådsbeskrivningar Se trådvy (Parallel Stacks).
Autoinsikter för profilering Se Få AI-hjälp med automatiska insikter.

I de flesta av dessa scenarier får du riktad hjälp med hjälp av knappen Fråga CopilotSkärmbild av knappen Fråga Copilot. knapp. Copilot känner redan till kontexten för dina frågor. Den känner till exempel till den aktuella anropsstacken, kodraden som du frågar om och namnet på undantaget (om det inträffade), så du behöver inte ange kontext själv i chatten. Copilot innehåller också förslag på användning av villkorsstyrda brytpunkter och spårningspunkter.