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 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:
Visual Studio 2022 version 17.8 eller senare
Logga in i Visual Studio med ett GitHub-konto med Copilot-åtkomst
** Du kan använda GitHub Copilot kostnadsfritt. Registrera dig och utnyttja AI för att koda snabbare och effektivare.GitHub Copilot i Visual Studio
GitHub Copilot Chat i Visual Studio
Obs
Om du får autentiseringsproblem när du har installerat tillägget kan du läsa Felsöka autentiseringsproblem med GitHub Copilot Chat.
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
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.
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"); } }
Högerklicka på följande instruktion och välj Brytpunkt>Infoga brytpunkt.
int value = Int32.Parse(args[0]);
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]
.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.
Skriv följande fråga i den infogade chattvyn:
Why does the args variable have a value of string[0]?
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.)
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.
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?"
Copilot visar en föreslagen korrigering av koden.
Om du vill använda kodkorrigeringen väljer du Acceptera.
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
När programmet har pausats på undantaget väljer du knappen Fråga Copilot.
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.
Välj knappen , förhandsgranska.
Visual Studio visar en förhandsgranskning av koden med den föreslagna korrigeringen.
Granska den föreslagna korrigeringen och välj Acceptera för att tillämpa kodförslaget.
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.
Ta bort den aktuella brytpunkten genom att klicka på den eller högerklicka och välja Ta bort brytpunkt.
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); }
Till vänster om
names.Add("Name: " + item)
-instruktionen högerklickar du i marginalen och väljer Infoga villkorsstyrd brytpunkt.Välj uttrycksfältet och Copilot börjar arbeta med förslag.
När förslagen visas väljer du en sådan som
item == "John"
. Redigera förslaget så att namnet blirFred
.Testa villkorsuttrycket:
Högerklicka på projektet ConsoleApp_Copilot i Solution Explorer och välj Egenskaper.
Välj Felsökning>Allmänt>Öppna användargränssnittet för startprofiler för felsökning.
I fältet kommandoradsargument anger du
5 Fred Joe
på tre separata rader.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 ärFred
.
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 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.