Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel leert u hoe u efficiënter fouten kunt opsporen met behulp van GitHub Copilot. Copilot kan oplossingen voor code bieden, samen met uitgebreide analyses en uitleg over de werking van code. Het helpt bij voorgestelde oplossingen voor bugs en legt zaken uit zoals uitzonderingen. Copilot begrijpt aanroepstacks, frames, variabelenamen en waarden. Als gevolg hiervan kunt u communiceren met de foutopsporingsprogrammabewuste AI om gedetailleerde vragen te stellen met betrekking tot uw code en om problemen in het algemeen op te sporen.
Daarnaast biedt Copilot nauwkeurigere hulp voor een aantal gerichte scenario's, zoals Uitzonderingen, en alle scenario's die worden beschreven in AI-uitgebreide scenario's voor foutopsporing. Zoek in de meeste van deze scenario's naar de Ask Copilot
of Analyze met de knop Copilot. In deze scenario's weet Copilot al de context voor uw vragen.
Zie Over GitHub Copilot Voltooiingen in Visual Studio voor meer informatie over GitHub Copilot voltooiingen in Visual Studio.
Voorwaarden
U hebt het volgende nodig om aan de slag te gaan:
Visual Studio 2022 version 17.8 of hoger
Aan aanmelden bij Visual Studio met behulp van een GitHub-account met Copilot toegang
** U kunt GitHub Copilot gratis gebruiken. Registreer en maak gebruik van AI om sneller en efficiënter code te coden.Notitie
Als u verificatieproblemen ondervindt na het installeren van de extensie, raadpleegt u Troubleshooting authentication issues with GitHub Copilot Chat.
Door AI verbeterde scenario's
Copilot begrijpt aanroepstacks, frames, variabelenamen en waarden. Als gevolg hiervan kunt u communiceren met de foutopsporingsprogrammabewuste AI om gedetailleerde vragen te stellen met betrekking tot uw code en om problemen in het algemeen op te sporen.
Daarnaast biedt Copilot nauwkeurigere hulp voor een aantal gerichte scenario's, zoals de scenario's die in de volgende tabel worden beschreven.
| Kenmerk of scenario | Verbinden |
|---|---|
| Agent voor foutopsporing | Zie Agentic bug resolution with the Debugger Agent in dit artikel. End-to-end agent-gebaseerde werkstroom die bugs reproduceert, uw app instrumenteert en oplossingen valideert met behulp van live runtime-gegevens. |
| Analyse van aanroepstack | Zie Analyze-aanroepstack met Copilot. Bekijk een analyse met één klik van wat uw thread doet, inclusief asynchrone stroomuitleg. |
| Uitzonderingen | Zie Een uitzondering debuggen met Copilot in dit artikel. Hulp bij uitzonderingen omvat hulp bij deadlockdetectiefouten. |
| Variabelen | Zie Hulp bij AI krijgen. |
| LINQ-queryanalyse | Beweeg de muisaanwijzer over LINQ-query's tijdens foutopsporing in de code-editor om de retourwaarde weer te geven. Selecteer de knop Analyseren met Copilot voor AI-assistentie. Zie Retourwaarden van LINQ-query's weergeven. |
| Tips voor gegevens | Zie Hulp bij AI krijgen met tips voor gegevens. |
| Voorwaardelijke onderbrekingspunten en traceringspunten | Zie voor suggesties door middel van voorwaardelijke onderbrekingspunten en traceringspunten in dit artikel. |
| Snelle acties (gloeilamp) | Zie Hulp bij AI krijgen met snelle acties. |
| IEnumerable tabellarische visualisator | Zie Hulp bij AI krijgen. |
| Automatisch detecteren en opmaken in Tekstvisualisator | Zie Automatisch detecteren en opmaken. Copilot identificeert automatisch gecodeerde of gecomprimeerde tekenreeksen en ontsleutelt ze in één klik. |
| Inline retourwaarden | Zie Weergeven van retourwaarden van methodeaanroepen. |
| Inlinewaarden | Zie Inlinewaarden weergeven. |
| Multithreaded debuggen | Zie Ai-hulp krijgen met de threads-weergave. |
| Het testen van modules | Zie Hulp bij AI krijgen voor foutopsporingstests |
| Uitzonderingen onderzoeken met repo-context | Zie AI-assistentie ontvangen met repo-context |
| Onderbrekingspunten oplossen | Zie Hulp bij AI krijgen. |
| Kenmerk of scenario | Verbinden |
|---|---|
| Analyse van aanroepstack | Zie Analyze-aanroepstack met Copilot. Bekijk een analyse met één klik van wat uw thread doet, inclusief asynchrone stroomuitleg. |
| Uitzonderingen | Zie Een uitzondering debuggen met Copilot in dit artikel. Hulp bij uitzonderingen omvat hulp bij deadlockdetectiefouten. |
| Variabelen | Zie Hulp bij AI krijgen. |
| LINQ-queryanalyse | Beweeg de muisaanwijzer over LINQ-query's tijdens foutopsporing in de code-editor om de retourwaarde weer te geven. Selecteer de knop Analyseren met Copilot voor AI-assistentie. Zie Retourwaarden van LINQ-query's weergeven. |
| Tips voor gegevens | Zie Hulp bij AI krijgen met tips voor gegevens. |
| Voorwaardelijke onderbrekingspunten en traceringspunten | Zie voor suggesties door middel van voorwaardelijke onderbrekingspunten en traceringspunten in dit artikel. |
| Snelle acties (gloeilamp) | Zie Hulp bij AI krijgen met snelle acties. |
| IEnumerable tabellarische visualisator | Zie Hulp bij AI krijgen. |
| Inline retourwaarden | Zie Weergeven van retourwaarden van methodeaanroepen. |
| Inlinewaarden | Zie Inlinewaarden weergeven. |
| Multithreaded debuggen | Zie Ai-hulp krijgen met de threads-weergave. |
| Het testen van modules | Zie Hulp bij AI krijgen voor foutopsporingstests |
| Uitzonderingen onderzoeken met repo-context | Zie AI-assistentie ontvangen met repo-context |
| Onderbrekingspunten oplossen | Zie Hulp bij AI krijgen. |
In de meeste van deze scenario's krijgt u gerichte hulp met behulp van de Ask Copilot
of Analyze met Copilot knop. Copilot weet al de context voor uw vragen. Het kent bijvoorbeeld de huidige aanroepstack, de coderegel waarover u vraagt en de naam van de uitzondering (als er een is opgetreden), zodat u zelf geen context hoeft op te geven in de chat. Copilot biedt ook suggesties voor het gebruik van voorwaardelijke onderbrekingspunten en traceringspunten.
Fouten opsporen met behulp van Copilot
In het volgende eenvoudige voorbeeld ziet u hoe u AI-hulp kunt krijgen met behulp van de inline chatweergave.
Notitie
U kunt ook hulp krijgen bij het gebruik van het afzonderlijke chatvenster door View > GitHub Copilot Chat te selecteren. Zie What is de GitHub Copilot Chat-extensie voor Visual Studio? voor meer informatie.
Een foutopsporingssessie starten
Maak in Visual Studio een nieuwe C#-console-app.
Kies in het startvenster Een nieuw project maken. Typ console in het zoekvak, selecteer C# als taal en kies vervolgens Console-app voor .NET. Kies Volgende. Typ een projectnaam zoals ConsoleApp_Copilot en selecteer Volgende.
Kies het aanbevolen doelframework of .NET 10 en kies vervolgens Maken.
Als u de Console-app projectsjabloon voor .NET niet ziet, gaat u naar Tools>Get-hulpprogramma's en -functies, waarmee het Visual Studio-installatieprogramma wordt geopend. Kies de workload .NET desktopontwikkeling en kies vervolgens Modify.
Visual Studio maakt het consoleproject, dat wordt weergegeven in Solution Explorer in het rechterdeelvenster.
Vervang de code in Program.cs door de volgende code:
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"); } }Klik met de rechtermuisknop op de volgende instructie en kies onderbrekingspunt>Onderbrekingspunt invoegen.
int value = Int32.Parse(args[0]);Druk op F5- of selecteer Start Foutopsporing in het menu Foutopsporing.
De app pauzeert op het onderbrekingspunt. In het venster Autos ziet u dat de argumentvariabele een waarde van
string[0]heeft.
- Klik met de rechtermuisknop in de code en kies Chat om de inline chatweergave te openen.
- Klik met de rechtermuisknop in de code en kies Ask Copilot om de inline chatweergave te openen.
Aanbeveling
U kunt ook met de rechtermuisknop op een variabele klikken in het venster Auto's of Locals of in een gegevenstip en Ask Copilot kiezen. Dit voorziet Copilot van de naam en context van de variabele, zodat u de context niet zelf hoeft te geven in de chat.
Typ de volgende vraag in de inline chatweergave:
Why does the args variable have a value of string[0]?
Wanneer u op Enter drukt, geeft Copilot een antwoord op basis van het begrip van uw code. (Mogelijk krijgt u een ander antwoord dan hier wordt weergegeven.)
Als Copilot een voorgestelde oplossing voor uw code heeft, wordt dit weergegeven. Zo niet, dan kunt u Copilot vragen om een codesuggesties.
Aanbeveling
Gebruik in de inlinechat het symbool '#' en selecteer in de vervolgkeuzelijst om specifieke informatie aan Copilot te geven terwijl u ernaar verwijst in uw vraag. Als u bijvoorbeeld een deel van de code selecteert en vervolgens #typt, kunt u die selectie kiezen in de vervolgkeuzelijst #. U kunt ook het symbool '#' gebruiken om te verwijzen naar IDE-functies die worden weergegeven in de vervolgkeuzelijst, zoals het venster Locals.
In dit voorbeeld schuift u naar het einde van het Copilot antwoord en selecteert u de vervolgvraag aan het einde van het inline chatvenster: 'Hoe kan ik de case afhandelen wanneer er geen argumenten aan het programma worden doorgegeven?'
Copilot toont een voorgestelde oplossing voor uw code.
Als u de codeoplossing wilt toepassen, selecteert u Tab.
Selecteer Alt+Delete zodat we andere functies van Copilot kunnen blijven leren in de volgende sectie.
Wanneer u op Enter drukt, geeft Copilot een antwoord op basis van het begrip van uw code. (Mogelijk krijgt u een ander antwoord dan hier wordt weergegeven.)
Als Copilot een voorgestelde oplossing voor uw code heeft, wordt dit weergegeven. Zo niet, dan kunt u Copilot vragen om een codesuggesties.
Aanbeveling
Gebruik in de inlinechat het symbool '#' en selecteer in de vervolgkeuzelijst om specifieke informatie aan Copilot te geven terwijl u ernaar verwijst in uw vraag. Als u bijvoorbeeld een deel van de code selecteert en vervolgens #typt, kunt u die selectie kiezen in de vervolgkeuzelijst #. U kunt ook het symbool '#' gebruiken om te verwijzen naar IDE-functies die worden weergegeven in de vervolgkeuzelijst, zoals het venster Locals.
In dit voorbeeld schuift u naar het einde van het Copilot antwoord en selecteert u de vervolgvraag aan het einde van het inline chatvenster: 'Hoe kan ik de case afhandelen wanneer er geen argumenten aan het programma worden doorgegeven?'
Copilot toont een voorgestelde oplossing voor uw code.
Als u de codeoplossing wilt toepassen, kiest u Accepteer.
Kies Cancel zodat we andere functies van Copilot kunnen blijven leren in de volgende sectie.
Debuggen van een uitzondering met Copilot
In het volgende eenvoudige voorbeeld ziet u hoe u ai-hulp krijgt wanneer u een uitzondering tegenkomt en hoe u uw code snel kunt bijwerken op basis van door AI voorgestelde oplossingen.
Een foutopsporingssessie starten
Tijdens pauzeren in de debugger met dezelfde voorbeeld-app drukt u op F11 of Debug>Stap in om de huidige instructie uit te voeren.
Een
IndexOutOfRangeExceptiontreedt op en de app wordt onderbroken, waarbij de uitzondering wordt getoond.Als u AI-hulp voor de uitzondering wilt krijgen, gaat u verder met de volgende sectie.
Hulp bij AI vragen
Als de toepassing is onderbroken bij de uitzondering, selecteer de knop Analyseren met Copilot.
Als het venster nog niet is geopend, wordt het venster Copilot Chat weergegeven en wordt er een beoordeling gegeven van de fout en waarom deze is opgetreden. In dit voorbeeld identificeert Copilot een voorgestelde codeoplossing, een knop voor het kopiëren van code en een knop Voorbeeld voor de codeoplossing.
Als u vragen hebt over de uitzondering, stelt u deze in het tekstvak Ask Copilot.
Geef in het Copilot chatvenster Copilot aan dat u de fout wilt voorkomen.
Wanneer Copilot een oplossing in het chatvenster voorstelt, selecteert u Apply.
Controleer de voorgestelde oplossing en selecteer Tab om de codesuggesties toe te passen.
Start het foutopsporingsprogramma opnieuw.
Deze keer treedt er geen uitzondering op. Het is opgelost!
Selecteer de knop Ask Copilot wanneer de toepassing is onderbroken door de uitzondering.
Als het venster nog niet is geopend, wordt het venster Copilot Chat weergegeven en wordt er een beoordeling gegeven van de fout en waarom deze is opgetreden. In dit voorbeeld identificeert Copilot een voorgestelde codeoplossing, een knop voor het kopiëren van code en een knop Voorbeeld voor de codeoplossing.
Als u vragen hebt over de uitzondering, stelt u deze in het tekstvak Ask Copilot.
Selecteer de knop Preview.
Visual Studio toont een codevoorbeeld met de voorgestelde oplossing.
Bekijk de voorgestelde oplossing en kies Accepteren om de codesuggesties toe te passen.
Start het foutopsporingsprogramma opnieuw.
Deze keer treedt er geen uitzondering op. Het is opgelost!
Oplossen van agentische bugs met de debugger agent
De Foutopsporingsprogrammaagent biedt een end-to-end agentische werkstroom die fouten valideert tegen echt runtime-gedrag in plaats van te vertrouwen op statische analyse. De ervaring begeleidt u door een volledige agentische lus: het begrijpen en reproduceren van het probleem, het instrumenteren van de toepassing, het isoleren van de hoofdoorzaak en het valideren van de oplossing via live-uitvoering.
U kunt beginnen met een probleem in GitHub of Azure DevOps, of de fout in natuurlijke taal beschrijven. De Agent voor foutopsporing wijst het probleem toe aan uw lokale broncode en begeleidt u door de oplossing. U kunt tijdens het foutopsporingsproces communiceren met de agent om meer input te bieden, uw theorie te bespreken of de oplossing in realtime te verfijnen.
De Debugger Agent gebruiken:
- Open het venster Copilot Chat (View > GitHub Copilot Chat).
- Selecteer Foutopsporingsprogramma in de vervolgkeuzelijst Modus in de linkerbenedenhoek van het chatvenster.
- Geef een koppeling naar een GitHub of Azure DevOps probleem op of beschrijf de fout in natuurlijke taal.
De Agent voor foutopsporing voert de volgende stappen uit:
- Contextinjectie : verbindt het probleem of de beschrijving van de fout met uw lokale broncode.
- Autonome reproduceerder : analyseert de fout en maakt, als reproductiestappen ontbreken, een minimaal scenario om de fout te activeren.
- Hypothesen en instrumentatie : genereert fouthypotheses en instrumenten uw app met traceringen en voorwaardelijke onderbrekingspunten om runtimestatus vast te leggen.
- Runtimevalidatie : voert de foutopsporingssessie uit en analyseert livetelemetrie om de hoofdoorzaak te isoleren.
- Gerichte correctie : stelt een nauwkeurige oplossing voor op het exacte foutpunt in plaats van op brede herstructurering.
- Definitieve menselijke validatie : u voert het scenario opnieuw uit en bevestigt de oplossing in de liveomgeving naast de agent.
Wanneer u zich in de agentmodus in de chat bevindt, kunt u ook overschakelen naar de agent voor foutopsporing met behulp van @debugger de chatinvoer. Zie Ingebouwde en aangepaste agents gebruiken met GitHub Copilot voor meer informatie over de Foutopsporingsagent en andere ingebouwde agents.
Verkrijg suggesties met voorwaardelijke onderbrekingspunten en tracepoints
Copilot geeft u suggesties voor conditionele onderbrekingspunten en tracepoints die specifiek zijn voor uw code.
In dit voorbeeld tonen we AI-suggesties voor een voorwaardelijk onderbrekingspunt. Voor tracepoints werkt de AI-hulp op dezelfde manier.
Verwijder het huidige onderbrekingspunt door erop te klikken of met de rechtermuisknop te klikken en kies Onderbrekingspunt verwijderen.
Vervang de volgende regel van code:
names.Add("Major Major Major");hiermee:
// names.Add("Major Major Major"); foreach (var item in args) { names.Add("Name: " + item); }Klik met de rechtermuisknop in de marge links van de verklaring
names.Add("Name: " + item)en kies Voorwaardelijk onderbrekingspunt invoegen.Selecteer het expressieveld en Copilot aan suggesties begint te werken.
Wanneer de suggesties worden weergegeven, kiest u er een, zoals
item == "Test". Bewerk de suggestie zodat de naamFredis.
Wanneer de suggesties worden weergegeven, kiest u er een, zoals
item == "John". Bewerk de suggestie zodat de naamFredis.
De voorwaardelijke expressie testen:
Klik met de rechtermuisknop op het project ConsoleApp_Copilot in Solution Explorer en kies Properties.
Selecteer Foutopsporing>Algemeen>Open de gebruikersinterface voor het starten van foutopsporingsprofielen.
Voer in het veld opdrachtregelargumenten
5 Fred Joein, op drie afzonderlijke regels.
Start het foutopsporingsprogramma opnieuw.
Wanneer het foutopsporingsprogramma bij het onderbrekingspunt pauzeert, controleert u de waarde van
itemen verifieert u of de huidige waardeFredis.