Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln får du lära dig hur du felsöker mer effektivt med hjälp av 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 Ask Copilot
eller knappen Analysera med Copilot. I dessa scenarier känner Copilot redan till kontexten för dina frågor.
Mer information om GitHub Copilot-kompletteringar i Visual Studio finns i Om GitHub Copilot-kompletteringar 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.Obs
Om du har problem med autentisering när du har installerat tillägget kan du läsa Felsöka autentiseringsproblem med GitHub Copilot Chat.
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 |
|---|---|
| Felsökningsagent | Se Agentisk felhantering med Debugger Agent i den här artikeln. Agentiskt arbetsflöde från slutpunkt till slutpunkt som återskapar buggar, instrumenterar din app och validerar korrigeringar med live-körningsdata. |
| Analys av anropsstack | Se Analysera anropsstacken med Copilot. Få analys med ett klick av vad din tråd gör, inklusive asynkrona flödesförklaringar. |
| Undantag | Se Felsöka ett undantag med Copilot i den här artikeln. Hjälp med undantag inkluderar hjälp med att upptäcka dödlåsproblem. |
| Variabler | Se Få AI-hjälp. |
| LINQ-frågeanalys | Hovra över LINQ-frågor vid felsökning i kodredigeraren för att se returvärdet. Välj knappen Analyze med Copilot för AI-hjälp. Se Visa returvärden för LINQ-frågor. |
| Tips om data | Se Få AI-hjälp med datatips. |
| 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 Få AI-hjälp. |
| Identifiera automatiskt och formatera i Textvisualiserare | Se Identifiera automatiskt och formatera. Copilot identifierar automatiskt kodade eller komprimerade strängar och avkodar dem med ett enda klick. |
| Returvärden i rad | Se Visa returvärden för metodanrop. |
| Infogade värden | Se Visa inbäddade värden. |
| Flertrådad felsökning | Se Få AI-hjälp med trådvyn. |
| Enhetstestning | Se Få AI-hjälp för att felsöka tester |
| Inspektera undantag med repositorkontext | Visa Få AI-hjälp med arkivkontext |
| Felsöka brytpunkter | Se Få AI-hjälp. |
| Funktion eller scenario | Länk |
|---|---|
| Analys av anropsstack | Se Analysera anropsstacken med Copilot. Få analys med ett klick av vad din tråd gör, inklusive asynkrona flödesförklaringar. |
| Undantag | Se Felsöka ett undantag med Copilot i den här artikeln. Hjälp med undantag inkluderar hjälp med att upptäcka dödlåsproblem. |
| Variabler | Se Få AI-hjälp. |
| LINQ-frågeanalys | Hovra över LINQ-frågor vid felsökning i kodredigeraren för att se returvärdet. Välj knappen Analyze med Copilot för AI-hjälp. Se Visa returvärden för LINQ-frågor. |
| Tips om data | Se Få AI-hjälp med datatips. |
| 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 Få AI-hjälp. |
| Returvärden i rad | Se Visa returvärden för metodanrop. |
| Infogade värden | Se Visa inbäddade värden. |
| Flertrådad felsökning | Se Få AI-hjälp med trådvyn. |
| Enhetstestning | Se Få AI-hjälp för att felsöka tester |
| Inspektera undantag med repositorkontext | Visa Få AI-hjälp med arkivkontext |
| Felsöka brytpunkter | Se Få AI-hjälp. |
I de flesta av dessa scenarier får du riktad hjälp med hjälp av knappen Ask Copilot
eller Analyze med knappen Copilot. 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.
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
I Visual Studio skapar du en ny C#-konsolapp.
I startfönstret väljer du Skapa ett nytt projekt. Skriv console i sökrutan, välj C# som språk och välj sedan Konsolapp 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 10 och välj sedan Skapa.
Om du inte ser projektmallen Console App för .NET går du till Tools>Get Tools and Features, som öppnar Visual Studio Installer. Välj arbetsbelastningen .NET desktop development och välj sedan Modify.
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 Chatt för att öppna den infogade chattvyn.
- Högerklicka i koden och välj Ask Copilot för 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 Ask Copilot. Detta ger Copilot med 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å Enter ger Copilot ett svar baserat på dess förståelse av koden. (Du kan få ett annat svar än vad som visas här.)
Om Copilot har en föreslagen korrigering för koden visas den. Annars kan du be Copilot om ett kodförslag.
Tips
I infogad chatt 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 det 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 tillämpa kodkorrigeringen väljer du Tabb.
Välj Alt+Delete så att vi kan fortsätta att lära oss andra funktioner i Copilot i nästa avsnitt.
När du trycker på Enter ger Copilot ett svar baserat på dess förståelse av koden. (Du kan få ett annat svar än vad som visas här.)
Om Copilot har en föreslagen korrigering för koden visas den. Annars kan du be Copilot om ett kodförslag.
Tips
I infogad chatt 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 det 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 Cancel så att vi kan fortsätta att 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
IndexOutOfRangeExceptioninträ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 Analysera med Copilot.
Om det inte redan är öppet visas fönstret Copilot Chat 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örhandsversion för kodkorrigeringen.
Om du har frågor om undantaget kan du ställa dem i textrutan Ask Copilot.
I chattfönstret Copilot berättar du för Copilot att du vill att det ska förhindra felet.
När Copilot föreslår en korrigering i chattfönstret väljer du Apply.
Granska den föreslagna korrigeringen och välj Tabb för att tillämpa kodförslaget.
Starta om felsökningsprogrammet.
Den här gången inträffar inget undantag. Det har åtgärdats!
När programmet har pausats på undantaget väljer du knappen Ask Copilot.
Om det inte redan är öppet visas fönstret Copilot Chat 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örhandsversion för kodkorrigeringen.
Om du har frågor om undantaget kan du ställa dem i textrutan Ask Copilot.
Välj knappen , förhandsgranska.
Visual Studio visar en förhandsgranskning av kod 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!
Agent-baserad buggupplösning med Felsökningsagenten
Felsökningsagenten tillhandahåller ett agentbaserat, heltäckande arbetsflöde som validerar buggar mot verkligt körningsbeteende i stället för att förlita sig på statisk analys. Upplevelsen vägleder dig genom en fullständig agentisk loop: förstå och återskapa problemet, instrumentera programmet, isolera rotorsaken och validera korrigeringen via livekörning.
Du kan börja från ett problem i GitHub eller Azure DevOps eller beskriva felet på naturligt språk. Felsökningsagenten mappar problemet till din lokala källkod och vägleder dig genom lösning. Du kan interagera med agenten under felsökningsprocessen för att ge mer indata, diskutera din teori eller förfina korrigeringen i realtid.
Så här använder du felsökningsagenten:
- Öppna fönstret Copilot Chat (View > GitHub Copilot Chat).
- Välj Felsökare i lägesväljaren i det nedre vänstra hörnet i chattfönstret.
- Ange en GitHub eller Azure DevOps problemlänk eller beskriv felet på naturligt språk.
Felsökningsagenten arbetar med följande steg:
- Kontextinmatning – Ansluter problemet eller felbeskrivningen till din lokala källkod.
- Autonom reproducerare – Analyserar buggen och skapar, om reproduktionssteg saknas, ett minimalt scenario för att utlösa felet.
- Hypotes och instrumentation – Genererar felhypoteser och instrumenterar din app med spårningspunkter och villkorliga brytpunkter för att samla in körningstillstånd.
- Körningsvalidering – Genomför felsökningssessionen och analyserar telemetri i realtid för att finna ursprungsorsaken.
- Riktad korrigering – Föreslår en exakt korrigering vid den exakta felpunkten i stället för bred refaktorisering.
- Slutlig mänsklig validering – Du kör scenariot igen och bekräftar korrigeringen i livemiljön tillsammans med agenten.
När du är i agentläge i chatten kan du också växla till felsökningsagenten genom att använda @debugger i chattindatan. Mer information om felsökningsagenten och andra inbyggda agenter finns i Använd inbyggda och anpassade agenter med GitHub Copilot.
Få förslag med villkorsstyrda brytpunkter och spårningspunkter
Copilot ger dig förslag på konditionella brytpunkter och tracepoints 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, till exempel
item == "Test". Redigera förslaget så att namnet blirFred.
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 Joepå tre separata rader.
Starta om felsökningsprogrammet.
När felsökningsprogrammet pausar vid brytpunkten kontrollerar du värdet för
itemoch kontrollerar att det aktuella värdet ärFred.