Zelfstudie: Fouten opsporen in een .NET-consoletoepassing met Visual Studio Code
In deze zelfstudie worden de hulpprogramma's voor foutopsporing geïntroduceerd die beschikbaar zijn in Visual Studio Code voor het werken met .NET-apps.
Vereisten
- Deze zelfstudie werkt met de console-app die u maakt in Een .NET-consoletoepassing maken met behulp van Visual Studio Code.
Buildconfiguratie voor foutopsporing gebruiken
Fouten opsporen en vrijgeven zijn. Ingebouwde buildconfiguraties van NET. 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.
De opstartinstellingen van Visual Studio Code maken standaard gebruik van de buildconfiguratie voor foutopsporing, dus u hoeft deze niet te wijzigen voordat u fouten opspoort.
Start Visual Studio Code.
Open de map van het project dat u hebt gemaakt in Een .NET-consoletoepassing maken met behulp van Visual Studio Code.
Een onderbrekingspunt instellen
Een onderbrekingspunt onderbreekt tijdelijk de uitvoering van de toepassing voordat de regel met het onderbrekingspunt wordt uitgevoerd.
Open het bestand Program.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. Andere manieren om een onderbrekingspunt in te stellen, zijn door op F9 te drukken of run>toggle Breakpoint te kiezen in het menu terwijl de regel code is geselecteerd.
Visual Studio Code geeft de regel aan waarop het onderbrekingspunt is ingesteld door een rode stip in de linkermarge weer te geven.
Instellen voor terminalinvoer
Het onderbrekingspunt bevindt zich na een methodeaanroep Console.ReadLine
. De console voor foutopsporing accepteert geen terminalinvoer voor een actief programma. Als u terminalinvoer wilt verwerken tijdens foutopsporing, kunt u de geïntegreerde terminal (een van de Visual Studio Code-vensters) of een externe terminal gebruiken. Voor deze zelfstudie gebruikt u de geïntegreerde terminal.
De projectmap bevat een .vscode-map . Open het bestand launch.json in de map .vscode .
Wijzig in launch.json de
console
instelling vaninternalConsole
inintegratedTerminal
:"console": "integratedTerminal",
Uw wijzigingen opslaan.
Foutopsporing starten
Open de weergave Foutopsporing door het pictogram Foutopsporing te selecteren in het menu aan de linkerkant.
Selecteer de groene pijl boven aan het deelvenster, naast .NET Core Launch (console). Andere manieren om het programma in de foutopsporingsmodus te starten, zijn door op F5 te drukken of Run>Start-foutopsporing te kiezen in het menu.
Selecteer het tabblad Terminal om de vraag 'Wat is uw naam?' weer te geven voordat het programma wacht op een antwoord.
Voer een tekenreeks in het terminalvenster 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
Console.WriteLine
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.
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 Foutopsporingsconsole de
name = "Gracie"
prompt in en druk op Enter.Voer onder aan het venster Foutopsporingsconsole in
currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime()
en druk op Enter.In het venster Variabelen worden de nieuwe waarden van de
name
encurrentDate
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.
Selecteer het tabblad Terminal opnieuw.
De waarden die in het consolevenster worden weergegeven, komen overeen met de wijzigingen die u hebt aangebracht in de Console voor foutopsporing.
Druk op een willekeurige toets 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 (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.
Selecteer
Expression
in de vervolgkeuzelijst, voer de volgende voorwaardelijke expressie in en druk op Enter.String.IsNullOrEmpty(name)
Telkens wanneer het onderbrekingspunt wordt bereikt, roept het foutopsporingsprogramma de
String.IsNullOrEmpty(name)
methode aan en wordt deze alleen op deze regel verbrokentrue
als de methodeaanroep wordt geretourneerd.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 Terminal op Enter wanneer u wordt gevraagd uw naam in te voeren.
Omdat aan de opgegeven voorwaarde (
name
is ofnull
String.Empty) is voldaan, stopt de uitvoering van het programma wanneer het onderbrekingspunt wordt bereikt en voordat deConsole.WriteLine
methode wordt uitgevoerd.In het venster Variabelen ziet u dat de waarde van de
name
variabele ,""
of String.Empty.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
true
.name == String.Empty
Selecteer de knop Doorgaan op de werkbalk om door te gaan met de uitvoering van het programma.
Selecteer het tabblad Terminal en druk op een willekeurige toets om het programma af te sluiten en de 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 Het onderbrekingspunt uitvoeren > 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 Code stelt u ook in staat om regel voor regel door een programma te lopen en de uitvoering ervan te bewaken. 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 accolade openen van de
Main
methode.Druk op F5 om de foutopsporing te starten.
Visual Studio Code markeert de onderbrekingspuntregel.
Op dit moment ziet u in het venster Variabelen dat de matrix leeg is en
currentDate
name
dat dezeargs
standaardwaarden heeft.Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio Code markeert de volgende regel.
Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio Code voert de
Console.WriteLine
naamprompt uit en markeert de volgende uitvoeringsregel. De volgende regel is deConsole.ReadLine
voor dename
. Het venster Variabelen is ongewijzigd en op het tabblad Terminal wordt de prompt 'Wat is uw naam?' weergegeven.Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio markeert de
name
variabeletoewijzing. In het venster Variabelen ziet u dat datname
nog steedsnull
is.Reageer op de prompt door een tekenreeks in te voeren op het tabblad Terminal en op Enter te drukken.
Op het tabblad Terminal wordt mogelijk niet de tekenreeks weergegeven die u invoert terwijl u deze invoer invoert, maar de Console.ReadLine methode legt uw invoer vast.
Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio Code markeert de
currentDate
variabeletoewijzing. In het venster Variabelen ziet u de waarde die wordt geretourneerd door de aanroep naar de Console.ReadLine methode. Op het tabblad Terminal wordt de tekenreeks weergegeven die u bij de prompt hebt ingevoerd.Selecteer Stap in uitvoeren>of druk op F11.
Het venster Variabelen toont de waarde van de
currentDate
variabele na de toewijzing van de DateTime.Now eigenschap.Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio Code roept de methode aan Console.WriteLine(String, Object, Object) . In het consolevenster wordt de opgemaakte tekenreeks weergegeven.
Selecteer Stap>uitvoeren of druk op Shift+F11.
Selecteer het tabblad Terminal .
In de terminal wordt 'Druk op een willekeurige toets om af te sluiten...
Druk op een willekeurige toets om het programma af te sluiten.
Buildconfiguratie van release gebruiken
Nadat u de foutopsporingsversie van uw toepassing hebt getest, moet u ook de releaseversie compileren en testen. De releaseversie bevat compileroptimalisaties die van invloed kunnen zijn 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, opent u Terminal en voert u de volgende opdracht uit:
dotnet run --configuration Release
Aanvullende bronnen
Volgende stappen
In deze zelfstudie hebt u hulpprogramma's voor foutopsporing in Visual Studio Code gebruikt. In de volgende zelfstudie publiceert u een implementeerbare versie van de app.
In deze zelfstudie worden de hulpprogramma's voor foutopsporing geïntroduceerd die beschikbaar zijn in Visual Studio Code voor het werken met .NET-apps.
Vereisten
- Deze zelfstudie werkt met de console-app die u maakt in Een .NET-consoletoepassing maken met behulp van Visual Studio Code.
Buildconfiguratie voor foutopsporing gebruiken
Fouten opsporen en vrijgeven zijn. Ingebouwde buildconfiguraties van NET. 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.
De opstartinstellingen van Visual Studio Code maken standaard gebruik van de buildconfiguratie voor foutopsporing, dus u hoeft deze niet te wijzigen voordat u fouten opspoort.
Start Visual Studio Code.
Open de map van het project dat u hebt gemaakt in Een .NET-consoletoepassing maken met behulp van Visual Studio Code.
Een onderbrekingspunt instellen
Een onderbrekingspunt onderbreekt tijdelijk de uitvoering van de toepassing voordat de regel met het onderbrekingspunt wordt uitgevoerd.
Open het bestand Program.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. Andere manieren om een onderbrekingspunt in te stellen, zijn door op F9 te drukken of run>toggle Breakpoint te kiezen in het menu terwijl de regel code is geselecteerd.
Visual Studio Code geeft de regel aan waarop het onderbrekingspunt is ingesteld door een rode stip in de linkermarge weer te geven.
Instellen voor terminalinvoer
Het onderbrekingspunt bevindt zich na een methodeaanroep Console.ReadLine
. De console voor foutopsporing accepteert geen terminalinvoer voor een actief programma. Als u terminalinvoer wilt verwerken tijdens foutopsporing, kunt u de geïntegreerde terminal (een van de Visual Studio Code-vensters) of een externe terminal gebruiken. Voor deze zelfstudie gebruikt u de geïntegreerde terminal.
De projectmap bevat een .vscode-map . Open het bestand launch.json in de map .vscode .
Wijzig in launch.json de
console
instelling vaninternalConsole
inintegratedTerminal
:"console": "integratedTerminal",
Uw wijzigingen opslaan.
Foutopsporing starten
Open de weergave Foutopsporing door het pictogram Foutopsporing te selecteren in het menu aan de linkerkant.
Selecteer de groene pijl boven aan het deelvenster, naast .NET Core Launch (console). Andere manieren om het programma in de foutopsporingsmodus te starten, zijn door op F5 te drukken of Run>Start-foutopsporing te kiezen in het menu.
Selecteer het tabblad Terminal om de vraag 'Wat is uw naam?' weer te geven voordat het programma wacht op een antwoord.
Voer een tekenreeks in het terminalvenster 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
Console.WriteLine
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.
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 Foutopsporingsconsole de
name = "Gracie"
prompt in en druk op Enter.Voer onder aan het venster Foutopsporingsconsole in
currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime()
en druk op Enter.In het venster Variabelen worden de nieuwe waarden van de
name
encurrentDate
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.
Selecteer het tabblad Terminal opnieuw.
De waarden die in het consolevenster worden weergegeven, komen overeen met de wijzigingen die u hebt aangebracht in de Console voor foutopsporing.
Druk op een willekeurige toets 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 (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.
Selecteer
Expression
in de vervolgkeuzelijst, voer de volgende voorwaardelijke expressie in en druk op Enter.String.IsNullOrEmpty(name)
Telkens wanneer het onderbrekingspunt wordt bereikt, roept het foutopsporingsprogramma de
String.IsNullOrEmpty(name)
methode aan en wordt deze alleen op deze regel verbrokentrue
als de methodeaanroep wordt geretourneerd.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 Terminal op Enter wanneer u wordt gevraagd uw naam in te voeren.
Omdat aan de opgegeven voorwaarde (
name
is ofnull
String.Empty) is voldaan, stopt de uitvoering van het programma wanneer het onderbrekingspunt wordt bereikt en voordat deConsole.WriteLine
methode wordt uitgevoerd.In het venster Variabelen ziet u dat de waarde van de
name
variabele ,""
of String.Empty.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
true
.name == String.Empty
Selecteer de knop Doorgaan op de werkbalk om door te gaan met de uitvoering van het programma.
Selecteer het tabblad Terminal en druk op een willekeurige toets om het programma af te sluiten en de 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 Het onderbrekingspunt uitvoeren > 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 Code stelt u ook in staat om regel voor regel door een programma te lopen en de uitvoering ervan te bewaken. 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 accolade openen van de
Main
methode.Druk op F5 om de foutopsporing te starten.
Visual Studio Code markeert de onderbrekingspuntregel.
Op dit moment ziet u in het venster Variabelen dat de matrix leeg is en
currentDate
name
dat dezeargs
standaardwaarden heeft.Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio Code markeert de volgende regel.
Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio Code voert de
Console.WriteLine
naamprompt uit en markeert de volgende uitvoeringsregel. De volgende regel is deConsole.ReadLine
voor dename
. Het venster Variabelen is ongewijzigd en op het tabblad Terminal wordt de prompt 'Wat is uw naam?' weergegeven.Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio markeert de
name
variabeletoewijzing. In het venster Variabelen ziet u dat datname
nog steedsnull
is.Reageer op de prompt door een tekenreeks in te voeren op het tabblad Terminal en op Enter te drukken.
Op het tabblad Terminal wordt mogelijk niet de tekenreeks weergegeven die u invoert terwijl u deze invoer invoert, maar de Console.ReadLine methode legt uw invoer vast.
Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio Code markeert de
currentDate
variabeletoewijzing. In het venster Variabelen ziet u de waarde die wordt geretourneerd door de aanroep naar de Console.ReadLine methode. Op het tabblad Terminal wordt de tekenreeks weergegeven die u bij de prompt hebt ingevoerd.Selecteer Stap in uitvoeren>of druk op F11.
Het venster Variabelen toont de waarde van de
currentDate
variabele na de toewijzing van de DateTime.Now eigenschap.Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio Code roept de methode aan Console.WriteLine(String, Object, Object) . In het consolevenster wordt de opgemaakte tekenreeks weergegeven.
Selecteer Stap>uitvoeren of druk op Shift+F11.
Selecteer het tabblad Terminal .
In de terminal wordt 'Druk op een willekeurige toets om af te sluiten...
Druk op een willekeurige toets om het programma af te sluiten.
Buildconfiguratie van release gebruiken
Nadat u de foutopsporingsversie van uw toepassing hebt getest, moet u ook de releaseversie compileren en testen. De releaseversie bevat compileroptimalisaties die van invloed kunnen zijn 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, opent u Terminal en voert u de volgende opdracht uit:
dotnet run --configuration Release
Aanvullende bronnen
Volgende stappen
In deze zelfstudie hebt u hulpprogramma's voor foutopsporing in Visual Studio Code gebruikt. In de volgende zelfstudie publiceert u een implementeerbare versie van de app.
In deze zelfstudie worden de hulpprogramma's voor foutopsporing geïntroduceerd die beschikbaar zijn in Visual Studio Code voor het werken met .NET-apps.
Vereisten
- Deze zelfstudie werkt met de console-app die u maakt in Een .NET-consoletoepassing maken met behulp van Visual Studio Code.
Buildconfiguratie voor foutopsporing gebruiken
Fouten opsporen en vrijgeven zijn. Ingebouwde buildconfiguraties van NET. 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.
De opstartinstellingen van Visual Studio Code maken standaard gebruik van de buildconfiguratie voor foutopsporing, dus u hoeft deze niet te wijzigen voordat u fouten opspoort.
Start Visual Studio Code.
Open de map van het project dat u hebt gemaakt in Een .NET-consoletoepassing maken met behulp van Visual Studio Code.
Een onderbrekingspunt instellen
Een onderbrekingspunt onderbreekt tijdelijk de uitvoering van de toepassing voordat de regel met het onderbrekingspunt wordt uitgevoerd.
Open het bestand Program.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. Andere manieren om een onderbrekingspunt in te stellen, zijn door op F9 te drukken of run>toggle Breakpoint te kiezen in het menu terwijl de regel code is geselecteerd.
Visual Studio Code geeft de regel aan waarop het onderbrekingspunt is ingesteld door een rode stip in de linkermarge weer te geven.
Instellen voor terminalinvoer
Het onderbrekingspunt bevindt zich na een methodeaanroep Console.ReadLine
. De console voor foutopsporing accepteert geen terminalinvoer voor een actief programma. Als u terminalinvoer wilt verwerken tijdens foutopsporing, kunt u de geïntegreerde terminal (een van de Visual Studio Code-vensters) of een externe terminal gebruiken. Voor deze zelfstudie gebruikt u de geïntegreerde terminal.
Open .vscode/launch.json.
Wijzig de
console
instelling vaninternalConsole
inintegratedTerminal
:"console": "integratedTerminal",
Uw wijzigingen opslaan.
Foutopsporing starten
Open de weergave Foutopsporing door het pictogram Foutopsporing te selecteren in het menu aan de linkerkant.
Selecteer de groene pijl boven aan het deelvenster, naast .NET Core Launch (console). Andere manieren om het programma in de foutopsporingsmodus te starten, zijn door op F5 te drukken of Run>Start-foutopsporing te kiezen in het menu.
Selecteer het tabblad Terminal om de vraag 'Wat is uw naam?' weer te geven voordat het programma wacht op een antwoord.
Voer een tekenreeks in het terminalvenster 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
Console.WriteLine
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.
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 Foutopsporingsconsole de
name = "Gracie"
prompt in en druk op Enter.Voer onder aan het venster Foutopsporingsconsole in
currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime()
en druk op Enter.In het venster Variabelen worden de nieuwe waarden van de
name
encurrentDate
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.
Selecteer het tabblad Terminal opnieuw.
De waarden die in het consolevenster worden weergegeven, komen overeen met de wijzigingen die u hebt aangebracht in de Console voor foutopsporing.
Druk op een willekeurige toets 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 (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.
Selecteer
Expression
in de vervolgkeuzelijst, voer de volgende voorwaardelijke expressie in en druk op Enter.String.IsNullOrEmpty(name)
Telkens wanneer het onderbrekingspunt wordt bereikt, roept het foutopsporingsprogramma de
String.IsNullOrEmpty(name)
methode aan en wordt deze alleen op deze regel verbrokentrue
als de methodeaanroep wordt geretourneerd.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 Terminal op Enter wanneer u wordt gevraagd uw naam in te voeren.
Omdat aan de opgegeven voorwaarde (
name
is ofnull
String.Empty) is voldaan, stopt de uitvoering van het programma wanneer het onderbrekingspunt wordt bereikt en voordat deConsole.WriteLine
methode wordt uitgevoerd.In het venster Variabelen ziet u dat de waarde van de
name
variabele ,""
of String.Empty.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
true
.name == String.Empty
Selecteer de knop Doorgaan op de werkbalk om door te gaan met de uitvoering van het programma.
Selecteer het tabblad Terminal en druk op een willekeurige toets om het programma af te sluiten en de 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 Het onderbrekingspunt uitvoeren > 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 Code stelt u ook in staat om regel voor regel door een programma te lopen en de uitvoering ervan te bewaken. 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 accolade openen van de
Main
methode.Druk op F5 om de foutopsporing te starten.
Visual Studio Code markeert de onderbrekingspuntregel.
Op dit moment ziet u in het venster Variabelen dat de matrix leeg is en
currentDate
name
dat dezeargs
standaardwaarden heeft.Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio Code markeert de volgende regel.
Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio Code voert de
Console.WriteLine
naamprompt uit en markeert de volgende uitvoeringsregel. De volgende regel is deConsole.ReadLine
voor dename
. Het venster Variabelen is ongewijzigd en op het tabblad Terminal wordt de prompt 'Wat is uw naam?' weergegeven.Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio markeert de
name
variabeletoewijzing. Het venster Variabelen is gewist.Reageer op de prompt door een tekenreeks in te voeren op het tabblad Terminal en op Enter te drukken.
Op het tabblad Terminal wordt mogelijk niet de tekenreeks weergegeven die u invoert terwijl u deze invoer invoert, maar de Console.ReadLine methode legt uw invoer vast.
In het venster Variabelen ziet u de waarde die wordt geretourneerd door de aanroep naar de Console.ReadLine methode.
Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio Code markeert de
currentDate
variabeletoewijzing. Op het tabblad Terminal wordt de tekenreeks weergegeven die u bij de prompt hebt ingevoerd.Selecteer Stap in uitvoeren>of druk op F11.
Het venster Variabelen toont de waarde van de
currentDate
variabele na de toewijzing van de DateTime.Now eigenschap.Selecteer Stap in uitvoeren>of druk op F11.
Visual Studio Code roept de methode aan Console.WriteLine(String, Object, Object) . In het consolevenster wordt de opgemaakte tekenreeks weergegeven.
Selecteer Stap>uitvoeren of druk op Shift+F11.
Selecteer het tabblad Terminal .
In de terminal wordt 'Druk op een willekeurige toets om af te sluiten...
Druk op een willekeurige toets om het programma af te sluiten.
Buildconfiguratie van release gebruiken
Nadat u de foutopsporingsversie van uw toepassing hebt getest, moet u ook de releaseversie compileren en testen. De releaseversie bevat compileroptimalisaties die van invloed kunnen zijn 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, opent u Terminal en voert u de volgende opdracht uit:
dotnet run --configuration Release
Aanvullende bronnen
Volgende stappen
In deze zelfstudie hebt u hulpprogramma's voor foutopsporing in Visual Studio Code gebruikt. In de volgende zelfstudie publiceert u een implementeerbare versie van de app.