Fouten opsporen in uw app met GitHub Copilot in Visual Studio
In dit artikel leert u hoe u efficiënter fouten kunt opsporen met behulp van GitHub Copilot. Copilot kan codecorrecties bieden, samen met diepgaande analyses en uitleg over hoe code werkt. 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 specifieke scenario's, zoals Uitzonderingen, en alle scenario's die worden beschreven in AI-verbeterde scenario's voor foutopsporing. In de meeste van deze scenario's zoekt u naar de -Ask Copilot knop. In deze scenario's kent Copilot al de context voor uw vragen.
Zie Over GitHub Copilot-voltooiingen in Visual Studiovoor meer informatie over GitHub Copilot-voltooiingen in Visual Studio.
Voorwaarden
U hebt het volgende nodig om aan de slag te gaan:
Visual Studio 2022 versie 17.8 of hoger
meld u aan bij Visual Studio met behulp van een GitHub-account met Copilot-toegang
** U kunt GitHub Copilot voor gratisgebruiken. Registreer en maak gebruik van AI om sneller en efficiënter code te coden.GitHub Copilot in Visual Studio
GitHub Copilot Chat- in Visual Studio
Notitie
Als u verificatieproblemen ondervindt na het installeren van de extensie, raadpleegt u Verificatieproblemen met GitHub Copilot Chatoplossen.
Fouten opsporen met 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 Weergave > GitHub Copilot Chatte selecteren. Zie Wat 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 doelplatform of .NET 8 en klik vervolgens op Maken.
Als u de Console-app projectsjabloon voor .NET niet ziet, gaat u naar Tools>Hulpprogramma's en onderdelen ophalen, waarmee het installatieprogramma van Visual Studio wordt geopend. Kies de .NET-desktopontwikkeling workload en selecteer vervolgens Wijzigen.
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 Vraag aan Copilot om de inline chatweergave te openen.
Tip
U kunt ook met de rechtermuisknop op een variabele klikken in het venster Auto's of Locals, of in een gegevenstip, en Copilot vragenkiezen. Dit biedt Copilot de naam en context van de variabele, dus u hoeft zelf geen context in de chat op te geven.
Typ de volgende vraag in de inline chatweergave:
Why does the args variable have a value of string[0]?
Wanneer u op Enterdrukt, 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.
Tip
Gebruik in de inlinechat het symbool '#' en selecteer in de vervolgkeuzelijst om specifieke informatie aan Copilot af 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 annuleren, zodat we in de volgende sectie kunnen doorgaan met het leren van andere functies van Copilot.
Foutopsporing van een exception 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
IndexOutOfRangeException
treedt 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
Bij de uitzondering waarbij de toepassing is onderbroken, selecteert u de knop 'Copilot vragen'.
Als dit nog niet is geopend, wordt het Copilot Chat-venster weergegeven en wordt een evaluatie 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 preview- knop voor de codeoplossing.
Als u vragen hebt over de uitzondering, stel ze dan in het tekstvak 'Copilot vragen'.
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!
Verkrijg suggesties met voorwaardelijke onderbrekingspunten en tracepoints
Copilot geeft u suggesties voor voorwaardelijke onderbrekingspunten en traceringen 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 begint met het werken aan suggesties.
Wanneer de suggesties worden weergegeven, kiest u er een, zoals
item == "John"
. Bewerk de suggestie zodat de naamFred
is.De voorwaardelijke expressie testen:
Klik met de rechtermuisknop op het ConsoleApp_Copilot project in Solution Explorer en kies Eigenschappen.
Selecteer Foutopsporing>Algemeen>Open de gebruikersinterface voor het starten van foutopsporingsprofielen.
Voer in het veld opdrachtregelargumenten
5 Fred Joe
in, op drie afzonderlijke regels.Start het foutopsporingsprogramma opnieuw.
Wanneer het foutopsporingsprogramma bij het onderbrekingspunt pauzeert, controleert u de waarde van
item
en verifieert u of de huidige waardeFred
is.
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 |
---|---|
Uitzonderingen | Zie Een uitzondering debuggen met Copilot in dit artikel. Hulp bij uitzonderingen bevat hulp bij impassedetectiefouten. |
Variabelen | Zie Fouten opsporen met copilot- in dit artikel. |
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 de visualizer expressie wijzigen. |
Inline retourwaarden | Zie Weergeven van retourwaarden van methodeaanroepen. |
Beschrijvingen van overzichtsthreads | Zie Threads View (Parallel Stacks). |
Automatische inzichten voor profilering | Zie Hulp bij AI krijgen met automatische inzichten. |
In de meeste van deze scenario's krijgt u gerichte hulp met behulp van de knop Ask Copilot knop. Copilot kent al de context voor uw vragen. Deze kent bijvoorbeeld de huidige aanroepstack, de coderegel waarover u vraagt en de naam van de uitzondering (als er een is opgetreden), zodat u geen context hoeft op te geven in de chat. Copilot biedt ook suggesties voor het gebruik van voorwaardelijke onderbrekingspunten en traceringspunten.