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 deze zelfstudie worden de hulpprogramma's voor foutopsporing geïntroduceerd die beschikbaar zijn in Visual Studio.
Belangrijk
Alle sneltoetsen zijn gebaseerd op de standaardwaarden van Visual Studio. Uw sneltoetsen kunnen variëren. Zie Keyboard-sneltoetsen in Visual Studio voor meer informatie.
In deze zelfstudie worden de hulpprogramma's voor foutopsporing geïntroduceerd die beschikbaar zijn in Visual Studio Code voor het werken met .NET apps.
In deze zelfstudie worden de hulpprogramma's voor foutopsporing geïntroduceerd die beschikbaar zijn in GitHub Codespaces voor het werken met .NET-apps.
Vereiste voorwaarden
Deze zelfstudie werkt met de console-app die u maakt in Maak een .NET-consoletoepassing.
Gebruik de Debug-buildconfiguratie
Debug en Release zijn de ingebouwde buildconfiguraties van Visual Studio. U gebruikt de buildconfiguratie voor foutopsporing en de releaseconfiguratie voor de definitieve releasedistributie.
In de configuratie voor foutopsporing compileert een programma met volledige symbolische foutopsporingsgegevens en geen optimalisatie. Optimalisatie maakt foutopsporing ingewikkeld, omdat de relatie tussen broncode en gegenereerde instructies complexer is. De releaseconfiguratie van een programma heeft geen symbolische foutopsporingsgegevens en is volledig geoptimaliseerd.
Standaard gebruikt Visual Studio de buildconfiguratie voor foutopsporing, dus u hoeft deze niet te wijzigen voordat u fouten opspoort.
Start Visual Studio.
Open het project dat u hebt gemaakt in Maak een .NET consoletoepassing.
De huidige buildconfiguratie wordt weergegeven op de werkbalk. In de volgende werkbalkafbeelding ziet u dat Visual Studio is geconfigureerd voor het compileren van de foutopsporingsversie van de app:
Een onderbrekingspunt instellen
Een onderbrekingspunt onderbreekt tijdelijk de uitvoering van de toepassing voordat de regel met het onderbrekingspunt wordt uitgevoerd.
Stel een onderbrekingspunt in op de regel die de naam, datum en tijd weergeeft door op de linkermarge van het codevenster op die regel te klikken. De linkermarge bevindt zich links van de regelnummers. Andere manieren om een onderbrekingspunt in te stellen, zijn door de cursor in de coderegel te plaatsen en vervolgens op F9 te drukken of foutopsporingspunt te kiezen in de menubalk.
Zoals in de volgende afbeelding wordt weergegeven, geeft Visual Studio de lijn aan waarop het onderbrekingspunt is ingesteld door het te markeren en een rode stip in de linkermarge weer te geven.
Druk op F5 om het programma uit te voeren in de foutopsporingsmodus. Een andere manier om foutopsporing te starten, is door foutopsporing starten te kiezen in het menu.
Voer een tekenreeks in het consolevenster in wanneer het programma om een naam vraagt en druk op Enter.
De uitvoering van het programma wordt gestopt wanneer het onderbrekingspunt wordt bereikt en voordat de methode wordt uitgevoerd. In het venster Locals worden de waarden weergegeven van variabelen die zijn gedefinieerd in de methode die momenteel wordt uitgevoerd.
Visual Studio Code starten.
Open de map van het project dat u hebt gemaakt in Maak een .NET-consoletoepassing.
Open het Program.cs-bestand .
Stel een onderbrekingspunt in op de regel die de naam, datum en tijd weergeeft door in de linkermarge van het codevenster te klikken. De linkermarge bevindt zich links van de regelnummers. Andere manieren om een onderbrekingspunt in te stellen, zijn door op F9 te drukken of runtoggle Breakpoint te kiezen in het menu terwijl de regel code is geselecteerd.
Visual Studio Code geeft de lijn aan waarop het onderbrekingspunt is ingesteld door een rode stip in de linkermarge weer te geven.
Onderbrekingspuntset
Open uw GitHub Codespace die u hebt gemaakt in Maak een .NET-consoletoepassing.
Open het bestand HelloWorld.cs .
Stel een onderbrekingspunt in op de regel die de naam, datum en tijd weergeeft door in de linkermarge van het codevenster te klikken. De linkermarge bevindt zich links van de regelnummers. U kunt ook een onderbrekingspunt instellen door op F9 te drukken terwijl de coderegel is geselecteerd.
Onderbrekingspuntset
Debuggen starten
De uitvoering van het programma stopt wanneer het onderbrekingspunt wordt bereikt, zoals beschreven in de vorige sectie. In het venster Locals worden de waarden weergegeven van variabelen die zijn gedefinieerd in de methode die momenteel wordt uitgevoerd.
Debug en Release zijn de ingebouwde buildconfiguraties van .NET. U gebruikt de buildconfiguratie voor foutopsporing en de releaseconfiguratie voor de definitieve releasedistributie.
Standaard gebruiken Visual Studio Code startinstellingen de buildconfiguratie Voor foutopsporing, dus u hoeft deze niet te wijzigen voordat u fouten opspoort.
Open de weergave Foutopsporing door het pictogram Foutopsporing te selecteren in het menu aan de linkerkant.
Selecteer Uitvoeren en fouten opsporen. Als u hier om wordt gevraagd, selecteert u C# en vervolgens C#: Start het opstartproject. Andere manieren om het programma in de foutopsporingsmodus te starten, zijn door op F5 te drukken of RunStart-foutopsporing te kiezen in het menu.
Debugging starten
Als u wordt gevraagd configuratie starten te selecteren, selecteert u C#: Fouten opsporen in het actieve bestand.
Selecteer het tabblad Console voor foutopsporing om de vraag 'Wat is uw naam?' weer te geven voordat het programma wacht op een antwoord.
Selecteer het tabblad Console voor foutopsporing
Voer een tekenreeks in het venster Foutopsporingsconsole in als reactie op de prompt om een naam en druk op Enter.
De uitvoering van het programma stopt wanneer het onderbrekingspunt bereikt en voordat de methode wordt uitgevoerd. In de sectie Locals van het venster Variabelen worden de waarden weergegeven van variabelen die zijn gedefinieerd in de momenteel actieve methode.
Onderbrekingspunt bereikt, Locals worden weergegeven
Standaard maakt GitHub Codespaces gebruik van de buildconfiguratie voor foutopsporing, dus u hoeft deze niet te wijzigen voordat u fouten opspoort.
Open de weergave Foutopsporing door het pictogram Foutopsporing te selecteren in het menu aan de linkerkant.
Selecteer Uitvoeren en fouten opsporen. Als u hier om wordt gevraagd, selecteert u C# als foutopsporingsprogramma en selecteert u vervolgens C#: Fouten opsporen in actief bestand als startconfiguratie.
Selecteer het tabblad Console voor foutopsporing om de vraag 'Wat is uw naam?' weer te geven voordat het programma wacht op een antwoord.
Voer een tekenreeks in het venster Foutopsporingsconsole in als reactie op de prompt om een naam en druk op Enter.
De uitvoering van het programma stopt wanneer het onderbrekingspunt bereikt en voordat de methode wordt uitgevoerd. In de sectie Locals van het venster Variabelen worden de waarden weergegeven van variabelen die zijn gedefinieerd in de momenteel actieve methode.
Onderbrekingspunt bereikt, Locals worden weergegeven
Het venster Direct gebruiken
In het Immediate-venster kunt u communiceren met de toepassing die u aan het debuggen bent. U kunt de waarde van variabelen interactief wijzigen om te zien hoe dit van invloed is op uw programma.
Als het venster Immediate niet zichtbaar is, geeft u dit weer door Debug>Windows>Immediate te kiezen.
Voer in het venster Direct in en druk op de Enter-toets.
Voer in het venster Direct in en druk op de Enter-toets.
In het venster Direct wordt de waarde van de tekenreeksvariabele en de eigenschappen van de waarde weergegeven. Daarnaast worden de waarden van de variabelen bijgewerkt in het venster Locals .
Druk op F5 om door te gaan met de uitvoering van het programma. Een andere manier om door te gaan, is door DebugContinue te kiezen in het menu.
De waarden die in het consolevenster worden weergegeven, komen overeen met de wijzigingen die u in het venster Direct hebt aangebracht.
Druk op een willekeurige toets om de toepassing af te sluiten en foutopsporing te stoppen.
De console voor foutopsporing gebruiken
In het venster Foutopsporingsconsole kunt u communiceren met de toepassing die u foutopsporing uitvoert. U kunt de waarde van variabelen wijzigen om te zien hoe dit van invloed is op uw programma.
Selecteer het tabblad Console voor foutopsporing .
Voer onder in het venster de prompt in en druk op Enter.
Variabele waarden wijzigen
Voer in onderaan het Foutopsporingsconsole-venster en druk op Enter.
In het venster Variabelen worden de nieuwe waarden van de en variabelen weergegeven.
Ga door met de uitvoering van het programma door de knop Doorgaan op de werkbalk te selecteren. Een andere manier om door te gaan is door op F5 te drukken.
Doorgaan met debuggen
De waarden die in het consolevenster worden weergegeven, komen overeen met de wijzigingen die u hebt aangebracht in de Console voor foutopsporing.
Terminal met de ingevoerde waarden
Druk op Enter om de toepassing af te sluiten en foutopsporing te stoppen.
Een voorwaardelijk onderbrekingspunt instellen
In het programma wordt de tekenreeks weergegeven die de gebruiker invoert. Wat gebeurt er als de gebruiker niets invoert? U kunt dit testen met een handige foutopsporingsfunctie, een voorwaardelijk onderbrekingspunt genoemd.
Klik met de rechtermuisknop op de rode stip die het onderbrekingspunt vertegenwoordigt. Selecteer In het contextmenu Voorwaarden om het dialoogvenster Instellingen voor onderbrekingspunten te openen. Schakel het selectievakje voorwaarden in als dit nog niet is geselecteerd.
Editor met paneel voor instellen van breekpunten - C#
Voer voor de voorwaardelijke expressie de volgende code in het tekstveld in.
string.IsNullOrEmpty(name)String.IsNullOrEmpty(name)Telkens wanneer het onderbrekingspunt wordt bereikt, roept de debugger de methode aan en pauzeert het alleen op deze regel als de methodeaanroep retourneert.
In plaats van een voorwaardelijke expressie kunt u een aantal treffers opgeven, waardoor de uitvoering van het programma wordt onderbroken voordat een instructie een opgegeven aantal keren wordt uitgevoerd. Een andere optie is om een filtervoorwaarde op te geven, waardoor de uitvoering van het programma wordt onderbroken op basis van dergelijke kenmerken als een thread-id, procesnaam of threadnaam.
Selecteer en klik op om het dialoogvenster te sluiten.
Start het programma met foutopsporing door op F5 te drukken.
Druk in het consolevenster op Enter wanneer u wordt gevraagd uw naam in te voeren.
Omdat aan de opgegeven voorwaarde ( is of ) is voldaan, stopt de uitvoering van het programma wanneer het onderbrekingspunt wordt bereikt en voordat de methode wordt uitgevoerd.
Selecteer het venster Locals , waarin de waarden worden weergegeven van variabelen die lokaal zijn voor de momenteel uitgevoerde methode. In dit geval is dit de methode die momenteel wordt uitgevoerd. Let op: de waarde van de variabele is , of .
Controleer of de waarde een lege tekenreeks is door de volgende instructie in te voeren in het venster Direct en op Enter te drukken. Het resultaat is .
? name == String.Empty? String.IsNullOrEmpty(name)Het vraagteken stuurt het onmiddellijke venster om een uitdrukking te evalueren.
Direct-venster geeft een waarde true nadat de opdracht is uitgevoerd - C#
Druk op F5 om door te gaan met de uitvoering van het programma.
Druk op een willekeurige toets om het consolevenster te sluiten en foutopsporing te stoppen.
Wis het onderbrekingspunt door op de stip in de linkermarge van het codevenster te klikken. Andere manieren om een onderbrekingspunt te wissen, zijn door op F9 te drukken of door onderbrekingspunt voor foutopsporing in-/uitschakelen te kiezen terwijl de coderegel is geselecteerd.
Klik met de rechtermuisknop (Ctrl-klik op macOS) op de rode stip die het onderbrekingspunt vertegenwoordigt. Selecteer in het contextmenu Het onderbrekingspunt bewerken om een dialoogvenster te openen waarmee u een voorwaardelijke expressie kunt invoeren.
Onderbrekingspunt-contextmenu
Selecteer in de vervolgkeuzelijst, voer de volgende voorwaardelijke expressie in en druk op Enter.
String.IsNullOrEmpty(name)Een voorwaardelijke expressie invoeren
Telkens wanneer het onderbrekingspunt wordt bereikt, roept de debugger de methode aan en pauzeert het alleen op deze regel als de methodeaanroep retourneert.
In plaats van een voorwaardelijke expressie kunt u een aantal treffers opgeven, waardoor de uitvoering van het programma wordt onderbroken voordat een instructie een opgegeven aantal keren wordt uitgevoerd. Een andere optie is om een filtervoorwaarde op te geven, waardoor de uitvoering van het programma wordt onderbroken op basis van dergelijke kenmerken als een thread-id, procesnaam of threadnaam.
Start het programma met foutopsporing door op F5 te drukken.
Druk op het tabblad Foutopsporingsconsole op Enter wanneer u wordt gevraagd uw naam in te voeren.
Omdat aan de opgegeven voorwaarde ( is of ) is voldaan, stopt de uitvoering van het programma wanneer het onderbrekingspunt wordt bereikt en voordat de methode wordt uitgevoerd.
In het venster Variabelen ziet u dat de waarde van de variabele , of .
Controleer of de waarde een lege tekenreeks is door de volgende instructie in te voeren bij de prompt van de console voor foutopsporing en op Enter te drukken. Het resultaat is .
name == String.EmptySelecteer de knop Doorgaan op de werkbalk om door te gaan met de uitvoering van het programma.
Druk op Enter om het programma af te sluiten en foutopsporing te stoppen.
Wis het onderbrekingspunt door op de stip in de linkermarge van het codevenster te klikken. Andere manieren om een onderbrekingspunt te verwijderen zijn door op F9 te drukken of Run Onderbrekingspunt aan/uitzetten in het menu te kiezen terwijl de coderegel is geselecteerd.
Als u een waarschuwing krijgt dat de onderbrekingspuntvoorwaarde verloren gaat, selecteert u Onderbrekingspunt verwijderen.
Een programma doorlopen
Visual Studio stelt u ook in staat om stap voor stap een programma door te lopen en de uitvoering ervan te volgen. Normaal gesproken stelt u een onderbrekingspunt in en volgt u de programmastroom door een klein deel van uw programmacode. Omdat dit programma klein is, kunt u het hele programma doorlopen.
Stel een onderbrekingspunt in op de coderegel waarin de prompt 'Wat is uw naam?' wordt weergegeven.
Kies DebugStep Into. Een andere manier om fouten in één instructie tegelijk op te sporen, is door op F11 te drukken.
Visual Studio markeert en geeft een pijl weer naast de volgende uitvoeringsregel.
Op dit moment ziet u in het Locals-venster dat de array leeg is, en dat en standaardwaarden hebben. Bovendien heeft Visual Studio een leeg consolevenster geopend.
Druk op F11. Visual Studio markeert de instructie met de variabeletoewijzing
name. In het venster Locals ziet u dat is, en in het consolevenster wordt de tekenreeks "Wat is je naam?" weergegeven.Reageer op de prompt door een tekenreeks in het consolevenster in te voeren en op Enter te drukken. De console reageert niet en de tekenreeks die u hebt ingevoerd, wordt niet weergegeven in het consolevenster, maar de methode legt toch uw invoer vast.
Druk op F11. Visual Studio markeert de instructie met de variabeletoewijzing
currentDate. Het venster Locals toont de waarde die wordt geretourneerd door de aanroep naar de methode. In het consolevenster wordt ook de tekenreeks weergegeven die u bij de prompt hebt ingevoerd.Druk op F11. Het venster Locals toont de waarde van de variabele na de toewijzing van de eigenschap. Het consolevenster is ongewijzigd.
Druk op F11. Visual Studio roept de methode Console.WriteLine(String, Object, Object) aan. In het consolevenster wordt de opgemaakte tekenreeks weergegeven.
Kies FoutopsporingStap uit. Een andere manier om stapsgewijze uitvoering te stoppen, is door op ShiftF11 te drukken.
In het consolevenster wordt een bericht weergegeven en wordt gewacht totdat u op een toets drukt.
Druk op een willekeurige toets om het consolevenster te sluiten en foutopsporing te stoppen.
Visual Studio Code maakt het ook mogelijk om regel voor regel door een programma te gaan en de uitvoering ervan te controleren. Normaal gesproken stelt u een onderbrekingspunt in en volgt u de programmastroom door een klein deel van uw programmacode. Omdat dit programma klein is, kunt u het hele programma doorlopen.
Stel een onderbrekingspunt in op de coderegel waarin de prompt 'Wat is uw naam?' wordt weergegeven.
Druk op F5 om foutopsporing te starten.
Visual Studio Code de onderbrekingspuntlijn markeert.
Op dit moment ziet u in het venster Variabelen dat de matrix leeg is, en dat en standaardwaarden hebben.
Selecteer Step Into op de werkbalk Foutopsporing of druk op F11.
Step-Into knop
Visual Studio Code de volgende regel markeert.
Visual Studio Code voert de
Console.WriteLineuit voor de naamprompt en markeert de volgende regel van uitvoering. De volgende regel is de voor de . Het venster Variabelen is ongewijzigd en op het tabblad Terminal wordt de prompt 'Wat is uw naam?' weergegeven.Selecteer Stap in of druk op F11.
Visual Studio Code markeert de toewijzing van de variabele
name. In het venster Variabelen ziet u dat dat nog steeds is.Reageer op de prompt door een tekenreeks in te voeren op het tabblad Terminal en op Enter te drukken.
Het tabblad Foutopsporingsconsole geeft mogelijk niet de tekenreeks weer die u invoert terwijl u deze invoer invoert, maar de methode legt uw invoer vast.
Selecteer Stap in of druk op F11.
Visual Studio Code markeert de toewijzing van de variabele
currentDate. In het venster Variabelen ziet u de waarde die wordt geretourneerd door de aanroep naar de methode. Op het tabblad Terminal wordt de tekenreeks weergegeven die u bij de prompt hebt ingevoerd.Selecteer Stap in of druk op F11.
Het venster Variabelen toont de waarde van de variabele na de toewijzing van de eigenschap.
Selecteer Stap in of druk op F11.
Visual Studio Code roept de methode Console.WriteLine(String, Object, Object) aan. In het consolevenster wordt de opgemaakte tekenreeks weergegeven.
Selecteer Stap uit of druk op ShiftF11.
Step-Out-knop
In de terminal wordt "Druk op een willekeurige toets om af te sluiten..."
Druk op een willekeurige toets om het programma af te sluiten.
Gebruik de Release-buildconfiguratie
Nadat u de foutopsporingsversie van uw toepassing hebt getest, moet u ook de releaseversie compileren en testen. De releaseversie bevat compileroptimalisaties die soms een negatieve invloed kunnen hebben op het gedrag van een toepassing. Compileroptimalisaties die zijn ontworpen om de prestaties te verbeteren, kunnen bijvoorbeeld raceomstandigheden in multithreaded-toepassingen creëren.
Als u de releaseversie van uw consoletoepassing wilt bouwen en testen, wijzigt u de buildconfiguratie op de werkbalk van Foutopsporing in Release.
Wanneer u op F5 drukt of Build Solution kiest in het menu Build compileert Visual Studio de releaseversie van de toepassing. U kunt deze testen zoals u de foutopsporingsversie hebt uitgevoerd.
Als u de releaseversie van uw consoletoepassing wilt bouwen en testen, opent u Terminal en voert u de volgende opdracht uit:
dotnet run --configuration Release
Als u de releaseversie van uw consoletoepassing wilt bouwen en testen, voert u de volgende opdracht uit in de terminal:
dotnet run --configuration Release HelloWorld.cs
Volgende stappen
In deze zelfstudie hebt u hulpprogramma's voor foutopsporing gebruikt. In de volgende handleiding publiceert u een uitrolbare versie van de app.