Inzicht in het .NET-foutopsporingsprogramma in Visual Studio Code
In de vorige les hebt u geleerd dat u een foutopsporingsprogramma kunt gebruiken om de uitvoering van uw programma te beheren en de status ervan te bekijken. In deze sectie leert u hoe u beide taken kunt doen in Visual Studio Code.
Eerst leert u hoe u het foutopsporingsprogramma van Visual Studio Code kunt configureren zodat u dit in combinatie met .NET kunt gebruiken.
Visual Studio Code configureren voor foutopsporing met .NET
De eerste keer dat u een C#-bestand opent in Visual Studio Code, wordt u gevraagd om aanbevolen extensies voor C# te installeren.
Visual Studio Code installeert de C#-extensie en geeft een extra prompt weer voor het toevoegen van de vereiste assets en het opsporen van fouten in uw project.
Notitie
Ondersteuning voor de computertaal C# in Visual Studio Code is een optionele installatie vanuit Marketplace. Wanneer u een C#-bestand opent in Visual Studio Code, wordt u automatisch gevraagd om deze extensie te installeren als u dit nog niet hebt gedaan. Als u problemen ondervindt met het maken van of het opsporen van fouten in uw .NET-toepassing in Visual Studio Code, moet u controleren of uw project de vereiste assets bevat voor ondersteuning van de computertaal C#.
Onderbrekingspunten
Zoals u in de vorige les hebt geleerd, kunt u een foutopsporingsprogramma gebruiken om de uitvoering van uw programma te analyseren en beheren. Wanneer u het foutopsporingsprogramma van Visual Studio Code start, wordt de code direct uitgevoerd. Omdat de code snel wordt uitgevoerd, moet u het programma bij elke instructie kunnen onderbreken. Hiertoe gebruikt u onderbrekingspunten.
U kunt een onderbrekingspunt toevoegen in Visual Studio Code door te klikken aan de linkerkant van het regelnummer op de regel die u wilt verbreken. Als het goed is, ziet u een rode cirkel zodra het onderbrekingspunt is ingeschakeld. Als u deze wilt verwijderen, selecteert u de rode cirkel opnieuw.
Als u op de rechtermuisknop klikt om een onderbrekingspunt toe te voegen, kunt u ook Een voorwaardelijk onderbrekingspunt toevoegen selecteren. Dit is een speciaal soort onderbrekingspunt waardoor u een voorwaarde kunt invoeren om de uitvoering te onderbreken. Dit onderbrekingspunt is alleen actief wanneer aan die opgegeven voorwaarde is voldaan. U kunt ook een bestaand onderbrekingspunt wijzigen door er met de rechtermuisknop op te klikken en Onderbrekingspunt bewerken te selecteren.
Overzicht van het foutopsporingsprogramma van Visual Studio Code
Nadat u uw onderbrekingspunten hebt ingesteld en de app hebt gestart, verschijnen er nieuwe informatievensters en besturingselementen op het scherm.
- Besturingselementen voor het starten van het foutopsporingsprogramma
- De status van variabelen
- Bekeken status van variabelen
- Huidige aanroepstack
- Onderbrekingspunten
- Besturingselementen voor uitvoering
- Huidige uitvoeringsstap
- Foutopsporingsconsole
Besturingselementen voor het starten van het foutopsporingsprogramma
Bovenaan de zijbalk ziet u de besturingselementen voor starten:
- Start met het opsporen van fouten.
- Selecteer de actieve startconfiguratie.
- Het bestand
launch.json
bewerken. Maak deze indien nodig. - Open de terminal voor foutopsporing.
De status van uw variabelen weergeven en bewerken
Wanneer u de oorzaak van een programmafout analyseert, bekijkt u de status van uw variabelen om te zoeken naar onverwachte wijzigingen. U kunt hiervoor het deelvenster Variabelen gebruiken.
Uw variabelen worden weergegeven op volgorde van bereik:
- Lokale variabelen zijn variabelen die in het huidige bereik toegankelijk zijn, doorgaans de huidige functie.
- Algemene variabelen zijn variabelen die vanuit elke locatie in uw programma toegankelijk zijn. Hier vindt u ook de systeemobjecten van de JavaScript-runtime. U kunt hier dus veel elementen verwachten.
- Sluitingsvariabelen zijn variabelen die toegankelijk zijn vanaf de huidige sluiting, als deze aanwezig is. Een sluiting combineert het lokale bereik van een functie met het bereik van de bovenliggende functie waarvan deze deel uitmaakt.
U kunt bereiken en variabelen uitvouwen door de pijl te selecteren. Wanneer u objecten uitvouwt, ziet u alle eigenschappen die in het object zijn gedefinieerd.
Het is mogelijk om de waarde van een variabele direct te wijzigen door te dubbelklikken op de variabele.
Door de muisaanwijzer boven een functieparameter of een variabele rechtstreeks in het editorvenster te bewegen, kunt u ook de waarde ervan bekijken.
Variabelen controleren
Het kan vervelend zijn om te zoeken naar een variabelestatus telkens wanneer u deze wilt bijhouden in de tijd of verschillende functies. Daarom is het deelvenster Controle handig.
U kunt de knop Plus selecteren om een variabelenaam of een expressie in te voeren die u wilt bekijken. Het is ook mogelijk om met de rechtermuisknop op een variabele in het deelvenster Variabelen te klikken en Toevoegen aan controle te selecteren.
Alle expressies in het horlogevenster worden automatisch bijgewerkt wanneer uw code wordt uitgevoerd.
Aanroepstack
Steeds wanneer een functie in het programma wordt gebruikt, wordt een item toegevoegd aan de aanroepstack. Wanneer uw toepassing complexer wordt en u vaak functies binnen andere functies aanroept, vormt de aanroepstack het overzicht van alle functieaanroepen.
Het is handig om de bron van een uitzondering te zoeken. Als het programma onverwacht vastloopt, ziet u vaak iets als het volgende voorbeeld in de console:
Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.
at OrderProcessor.OrderQueue.ProcessNewOrders(String[] orderIds) in C:\Users\Repos\OrderProcessor\OrderQueue.cs:line 12
at OrderProcessor.Program.Main(String[] args) in C:\Users\Repos\OrderProcessor\Program.cs:line 9
De groep at [...]
-lijnen onder het foutbericht wordt een stack-trace genoemd. De aanroepstack toont de naam en oorsprong van elke functie die is aangeroepen voordat de uitzondering zich voordeed. Het kan een beetje moeilijk te ontcijferen zijn, omdat het ook interne functies van de .NET-runtime bevat.
Hier komt het paneel Aanroepstack van Visual Studio Code dan ook van pas. Hiermee wordt ongewenste informatie weggefilterd en ziet u standaard alleen de relevante functies van uw eigen code. Vervolgens kunt u deze aanroepstack terugspoelen om te kijken waarvan de uitzondering afkomstig is.
Deelvenster Onderbrekingspunten
In het deelvenster Onderbrekingspunten ziet u de onderbrekingspunten die u in uw code hebt geplaatst. U kunt naar elk van deze onderbrekingspunten schakelen. U kunt ook tussen opties schakelen om onderbrekingspunten toe te voegen bij gedetecteerde en niet-gedetecteerde uitzonderingen. U kunt het paneel Onderbrekingspunten gebruiken om de status van uw programma te onderzoeken en de bron van een uitzondering opsporen met behulp van de Aanroepstack wanneer zo'n uitzondering zich voordoet.
Uitvoerbewerkingen beheren
U kunt de uitvoerstroom van uw programma beheren met behulp van deze besturingselementen.
Van links naar rechts zijn dit de volgende besturingselementen:
- Doorgaan of de uitvoering onderbreken: als de uitvoering is onderbroken, wordt deze voortgezet totdat het volgende onderbrekingspunt wordt bereikt. Als uw programma wordt uitgevoerd, wordt de knop veranderd in een pauzeknop, waarmee u de uitvoerbewerking kunt onderbreken.
- Stap over: voert de volgende code-instructie uit in de huidige context.
- Stap in: Zoals Stap over, maar als de volgende instructie een functie-aanroep is, gaat u verder met de eerste code-instructie van deze functie (hetzelfde als de
step
opdracht). - Stap uit: Als u zich in een functie bevindt, voert u de resterende code van deze functie uit en gaat u terug naar de instructie na de initiële functieaanroep (hetzelfde als de
out
opdracht). - Opnieuw opstarten: start het programma vanaf het begin opnieuw op.
- Stop: Beëindig de uitvoering en sluit het foutopsporingsprogramma af.
De foutopsporingsconsole gebruiken
U kunt de console voor foutopsporing weergeven of verbergen door Ctrl+Shift+Y voor Windows en Linux te selecteren. Selecteer Cmd+Shift+Y voor Mac. U kunt de console voor foutopsporing gebruiken om uw toepassingsconsolelogboeken te visualiseren. U kunt deze ook gebruiken om expressies te evalueren of code uit te voeren in de huidige uitvoeringsinhoud, zoals opdrachten of namen van variabelen in het ingebouwde .NET-foutopsporingsprogramma.
U kunt een .NET-expressie invoeren in het invoerveld onderaan de console voor foutopsporing en vervolgens Enter selecteren om deze te evalueren. Het resultaat wordt rechtstreeks in de console weergegeven.
Door de foutopsporingsconsole te gebruiken, kunt u snel de waarde van een variabele controleren, een functie met verschillende waarden testen of de huidige status wijzigen.
Notitie
Hoewel de foutopsporingsconsole erg nuttig is voor het uitvoeren en evalueren van .NET-code, kan het een beetje verwarrend zijn wanneer u een .NET Console-toepassing probeert uit te voeren of fouten op te sporen omdat de console voor foutopsporing geen terminalinvoer accepteert voor een actief programma.
Voor het afhandelen van terminalinvoer tijdens het opsporen van fouten kunt u de geïntegreerde terminal (een van vensters van Visual Studio Code) of een externe terminal gebruiken. Voor deze zelfstudie gebruikt u de geïntegreerde terminal.
Open .vscode/launch.json.
Wijzig de instelling
console
inintegratedTerminal
van:"console": "internalConsole",
Aan:
"console": "integratedTerminal",
Sla uw wijzigingen op.
In de volgende les leert u hoe u het foutopsporingsprogramma kunt gebruiken om de fout op te lossen in de Fibonacci-code die we eerder hebben gezien.