Delen via


Zelfstudie: Fouten opsporen in een .NET-consoletoepassing met Visual Studio

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 sneltoetsen in Visual Studio voor meer informatie.

Vereisten

Buildconfiguratie voor foutopsporing gebruiken

Fouten opsporen en vrijgeven zijn 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.

Visual Studio maakt standaard gebruik van de buildconfiguratie Voor foutopsporing, dus u hoeft deze niet te wijzigen voordat u fouten opspoort.

  1. Start Visual Studio.

  2. Open het project dat u hebt gemaakt in Een .NET-consoletoepassing maken met Visual Studio.

    De huidige buildconfiguratie wordt weergegeven op de werkbalk. In de volgende werkbalkafbeelding ziet u dat Visual Studio is geconfigureerd om de foutopsporingsversie van de app te compileren:

    Visual Studio toolbar with debug highlighted

Een onderbrekingspunt instellen

Een onderbrekingspunt onderbreekt tijdelijk de uitvoering van de toepassing voordat de regel met het onderbrekingspunt wordt uitgevoerd.

  1. 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.

    Visual Studio Program window with breakpoint set

  2. 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.

  3. Voer een tekenreeks in het consolevenster in wanneer het programma om een naam vraagt en druk op Enter.

  4. De uitvoering van het programma wordt gestopt wanneer het onderbrekingspunt wordt bereikt en voordat de Console.WriteLine methode wordt uitgevoerd. In het venster Locals worden de waarden weergegeven van variabelen die zijn gedefinieerd in de methode die momenteel wordt uitgevoerd.

    Screenshot of a breakpoint in Visual Studio

Het venster Direct gebruiken

In het venster Direct kunt u communiceren met de toepassing die u foutopsporing uitvoert. U kunt de waarde van variabelen interactief wijzigen om te zien hoe dit van invloed is op uw programma.

  1. Als het venster Direct niet zichtbaar is, geeft u dit weer door Fouten opsporen>in Windows>Direct te kiezen.

  2. Voer in name = "Gracie" het venster Direct in en druk op Enter .

  3. Voer in currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() het venster Direct in en druk op Enter .

    In het venster Direct wordt de waarde van de tekenreeksvariabele en de eigenschappen van de DateTime waarde weergegeven. Daarnaast worden de waarden van de variabelen bijgewerkt in het venster Locals .

    Locals and Immediate Windows in Visual Studio 2019

  4. Druk op F5 om door te gaan met de uitvoering van het programma. Een andere manier om door te gaan, is door Debug>Continue 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.

    Console window showing the entered values

  5. 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.

  1. 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 showing breakpoint settings panel - C#

  2. Voer voor de voorwaardelijke expressie de volgende code in het veld in waarin voorbeeldcode wordt weergegeven die test als x dit 5 is.

    string.IsNullOrEmpty(name)
    
    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 verbroken trueals 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.

  3. Selecteer Sluiten om het dialoogvenster te sluiten.

  4. Start het programma met foutopsporing door op F5 te drukken.

  5. Druk in het consolevenster op Enter wanneer u wordt gevraagd uw naam in te voeren.

  6. Omdat aan de opgegeven voorwaarde (name is of nullString.Empty) is voldaan, stopt de uitvoering van het programma wanneer het onderbrekingspunt wordt bereikt en voordat de Console.WriteLine methode wordt uitgevoerd.

  7. Selecteer het venster Locals , waarin de waarden worden weergegeven van variabelen die lokaal zijn voor de momenteel uitgevoerde methode. In dit geval Main is dit de methode die momenteel wordt uitgevoerd. Let op: de waarde van de name variabele is "", of String.Empty.

  8. 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 true.

    ? name == String.Empty
    
    ? String.IsNullOrEmpty(name)
    

    Het vraagteken stuurt het directe venster om een expressie te evalueren.

    Immediate Window returning a value of true after the statement is executed - C#

  9. Druk op F5 om door te gaan met de uitvoering van het programma.

  10. Druk op een willekeurige toets om het consolevenster te sluiten en foutopsporing te stoppen.

  11. 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 onderbrekingspuntvoor foutopsporing > in-/uitschakelen te kiezen terwijl de coderegel is geselecteerd.

Een programma doorlopen

Met Visual Studio kunt u ook regel voor regel door een programma lopen en de uitvoering ervan 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.

  1. Kies Debug>Step 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.

    C#

    Visual Studio step into method - C#

    Visual Basic

    Visual Studio step into method - Visual Basic

    Op dit moment ziet u in het venster Locals dat de matrix leeg is en namecurrentDate dat deze args standaardwaarden heeft. Daarnaast heeft Visual Studio een leeg consolevenster geopend.

  2. Druk op F11. Visual Studio markeert nu de volgende uitvoeringsregel. Het lokale venster is ongewijzigd en het consolevenster blijft leeg.

    C#

    Visual Studio step in method source - C#

    Visual Basic

    Visual Studio step into method source - Visual Basic

  3. Druk op F11. Visual Studio markeert de instructie die de name variabeletoewijzing bevat. In het venster Locals ziet u dat name , nullen in het consolevenster wordt de tekenreeks 'Wat is uw naam?'.

  4. 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 Console.ReadLine methode legt toch uw invoer vast.

  5. Druk op F11. Visual Studio markeert de instructie die de currentDate variabeletoewijzing bevat. Het venster Locals toont de waarde die wordt geretourneerd door de aanroep naar de Console.ReadLine methode. In het consolevenster wordt ook de tekenreeks weergegeven die u bij de prompt hebt ingevoerd.

  6. Druk op F11. Het venster Locals toont de waarde van de currentDate variabele na de toewijzing van de DateTime.Now eigenschap. Het consolevenster is ongewijzigd.

  7. Druk op F11. Visual Studio roept de Console.WriteLine(String, Object, Object) methode aan. In het consolevenster wordt de opgemaakte tekenreeks weergegeven.

  8. Kies Stap voor foutopsporing>. Een andere manier om stapsgewijze uitvoering te stoppen, is door op Shift+F11 te drukken.

    In het consolevenster wordt een bericht weergegeven en wordt gewacht totdat u op een toets drukt.

  9. Druk op een willekeurige toets om het consolevenster te sluiten en foutopsporing te stoppen.

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 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.

default Visual Studio toolbar with release highlighted

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.

Volgende stappen

In deze zelfstudie hebt u hulpprogramma's voor foutopsporing van Visual Studio 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.

Belangrijk

Alle sneltoetsen zijn gebaseerd op de standaardwaarden van Visual Studio. Uw sneltoetsen kunnen variëren. Zie sneltoetsen in Visual Studio voor meer informatie.

Vereisten

Buildconfiguratie voor foutopsporing gebruiken

Fouten opsporen en vrijgeven zijn 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.

Visual Studio maakt standaard gebruik van de buildconfiguratie Voor foutopsporing, dus u hoeft deze niet te wijzigen voordat u fouten opspoort.

  1. Start Visual Studio.

  2. Open het project dat u hebt gemaakt in Een .NET-consoletoepassing maken met Visual Studio.

    De huidige buildconfiguratie wordt weergegeven op de werkbalk. In de volgende werkbalkafbeelding ziet u dat Visual Studio is geconfigureerd om de foutopsporingsversie van de app te compileren:

    Visual Studio toolbar with debug highlighted

Een onderbrekingspunt instellen

Een onderbrekingspunt onderbreekt tijdelijk de uitvoering van de toepassing voordat de regel met het onderbrekingspunt wordt uitgevoerd.

  1. 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.

    Visual Studio Program window with breakpoint set

  2. 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.

  3. Voer een tekenreeks in het consolevenster in wanneer het programma om een naam vraagt en druk op Enter.

  4. De uitvoering van het programma wordt gestopt wanneer het onderbrekingspunt wordt bereikt en voordat de Console.WriteLine methode wordt uitgevoerd. In het venster Locals worden de waarden weergegeven van variabelen die zijn gedefinieerd in de methode die momenteel wordt uitgevoerd.

    Screenshot of a breakpoint in Visual Studio

Het venster Direct gebruiken

In het venster Direct kunt u communiceren met de toepassing die u foutopsporing uitvoert. U kunt de waarde van variabelen interactief wijzigen om te zien hoe dit van invloed is op uw programma.

  1. Als het venster Direct niet zichtbaar is, geeft u dit weer door Fouten opsporen>in Windows>Direct te kiezen.

  2. Voer in name = "Gracie" het venster Direct in en druk op Enter .

  3. Voer in currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() het venster Direct in en druk op Enter .

    In het venster Direct wordt de waarde van de tekenreeksvariabele en de eigenschappen van de DateTime waarde weergegeven. Daarnaast worden de waarden van de variabelen bijgewerkt in het venster Locals .

    Locals and Immediate Windows in Visual Studio 2019

  4. Druk op F5 om door te gaan met de uitvoering van het programma. Een andere manier om door te gaan, is door Debug>Continue 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.

    Console window showing the entered values

  5. 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.

  1. 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 showing breakpoint settings panel - C#

  2. Voer voor de voorwaardelijke expressie de volgende code in het veld in waarin voorbeeldcode wordt weergegeven die test als x dit 5 is.

    string.IsNullOrEmpty(name)
    
    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 verbroken trueals 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.

  3. Selecteer Sluiten om het dialoogvenster te sluiten.

  4. Start het programma met foutopsporing door op F5 te drukken.

  5. Druk in het consolevenster op Enter wanneer u wordt gevraagd uw naam in te voeren.

  6. Omdat aan de opgegeven voorwaarde (name is of nullString.Empty) is voldaan, stopt de uitvoering van het programma wanneer het onderbrekingspunt wordt bereikt en voordat de Console.WriteLine methode wordt uitgevoerd.

  7. Selecteer het venster Locals , waarin de waarden worden weergegeven van variabelen die lokaal zijn voor de momenteel uitgevoerde methode. In dit geval Main is dit de methode die momenteel wordt uitgevoerd. Let op: de waarde van de name variabele is "", of String.Empty.

  8. 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 true.

    ? name == String.Empty
    
    ? String.IsNullOrEmpty(name)
    

    Het vraagteken stuurt het directe venster om een expressie te evalueren.

    Immediate Window returning a value of true after the statement is executed - C#

  9. Druk op F5 om door te gaan met de uitvoering van het programma.

  10. Druk op een willekeurige toets om het consolevenster te sluiten en foutopsporing te stoppen.

  11. 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 onderbrekingspuntvoor foutopsporing > in-/uitschakelen te kiezen terwijl de coderegel is geselecteerd.

Een programma doorlopen

Met Visual Studio kunt u ook regel voor regel door een programma lopen en de uitvoering ervan 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.

  1. Kies Debug>Step 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.

    C#

    Visual Studio step into method - C#

    Visual Basic

    Visual Studio step into method - Visual Basic

    Op dit moment ziet u in het venster Locals dat de matrix leeg is en namecurrentDate dat deze args standaardwaarden heeft. Daarnaast heeft Visual Studio een leeg consolevenster geopend.

  2. Druk op F11. Visual Studio markeert nu de volgende uitvoeringsregel. Het lokale venster is ongewijzigd en het consolevenster blijft leeg.

    C#

    Visual Studio step in method source - C#

    Visual Basic

    Visual Studio step into method source - Visual Basic

  3. Druk op F11. Visual Studio markeert de instructie die de name variabeletoewijzing bevat. In het venster Locals ziet u dat name , nullen in het consolevenster wordt de tekenreeks 'Wat is uw naam?'.

  4. 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 Console.ReadLine methode legt toch uw invoer vast.

  5. Druk op F11. Visual Studio markeert de instructie die de currentDate variabeletoewijzing bevat. Het venster Locals toont de waarde die wordt geretourneerd door de aanroep naar de Console.ReadLine methode. In het consolevenster wordt ook de tekenreeks weergegeven die u bij de prompt hebt ingevoerd.

  6. Druk op F11. Het venster Locals toont de waarde van de currentDate variabele na de toewijzing van de DateTime.Now eigenschap. Het consolevenster is ongewijzigd.

  7. Druk op F11. Visual Studio roept de Console.WriteLine(String, Object, Object) methode aan. In het consolevenster wordt de opgemaakte tekenreeks weergegeven.

  8. Kies Stap voor foutopsporing>. Een andere manier om stapsgewijze uitvoering te stoppen, is door op Shift+F11 te drukken.

    In het consolevenster wordt een bericht weergegeven en wordt gewacht totdat u op een toets drukt.

  9. Druk op een willekeurige toets om het consolevenster te sluiten en foutopsporing te stoppen.

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 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.

default Visual Studio toolbar with release highlighted

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.

Volgende stappen

In deze zelfstudie hebt u hulpprogramma's voor foutopsporing van Visual Studio 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.

Vereisten

Buildconfiguratie voor foutopsporing gebruiken

Fouten opsporen en vrijgeven zijn 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.

Visual Studio maakt standaard gebruik van de buildconfiguratie Voor foutopsporing, dus u hoeft deze niet te wijzigen voordat u fouten opspoort.

  1. Start Visual Studio.

  2. Open het project dat u hebt gemaakt in Een .NET-consoletoepassing maken met Visual Studio.

    De huidige buildconfiguratie wordt weergegeven op de werkbalk. In de volgende werkbalkafbeelding ziet u dat Visual Studio is geconfigureerd om de foutopsporingsversie van de app te compileren:

    Visual Studio toolbar with debug highlighted

Een onderbrekingspunt instellen

Een onderbrekingspunt onderbreekt tijdelijk de uitvoering van de toepassing voordat de regel met het onderbrekingspunt wordt uitgevoerd.

  1. 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.

    Visual Studio Program window with breakpoint set

  2. 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.

  3. Voer een tekenreeks in het consolevenster in wanneer het programma om een naam vraagt en druk op Enter.

  4. De uitvoering van het programma wordt gestopt wanneer het onderbrekingspunt wordt bereikt en voordat de Console.WriteLine methode wordt uitgevoerd. In het venster Locals worden de waarden weergegeven van variabelen die zijn gedefinieerd in de methode die momenteel wordt uitgevoerd.

    Screenshot of a breakpoint in Visual Studio

Het venster Direct gebruiken

In het venster Direct kunt u communiceren met de toepassing die u foutopsporing uitvoert. U kunt de waarde van variabelen interactief wijzigen om te zien hoe dit van invloed is op uw programma.

  1. Als het venster Direct niet zichtbaar is, geeft u dit weer door Fouten opsporen>in Windows>Direct te kiezen.

  2. Voer in name = "Gracie" het venster Direct in en druk op Enter .

  3. Voer in currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime() het venster Direct in en druk op Enter .

    In het venster Direct wordt de waarde van de tekenreeksvariabele en de eigenschappen van de DateTime waarde weergegeven. Daarnaast worden de waarden van de variabelen bijgewerkt in het venster Locals .

    Locals and Immediate Windows in Visual Studio 2019

  4. Druk op F5 om door te gaan met de uitvoering van het programma. Een andere manier om door te gaan, is door Debug>Continue 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.

    Console window showing the entered values

  5. 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.

  1. 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 showing breakpoint settings panel - C#

  2. Voer voor de voorwaardelijke expressie de volgende code in het veld in waarin voorbeeldcode wordt weergegeven die test als x dit 5 is.

    String.IsNullOrEmpty(name)
    
    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 verbroken trueals 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.

  3. Selecteer Sluiten om het dialoogvenster te sluiten.

  4. Start het programma met foutopsporing door op F5 te drukken.

  5. Druk in het consolevenster op Enter wanneer u wordt gevraagd uw naam in te voeren.

  6. Omdat aan de opgegeven voorwaarde (name is of nullString.Empty) is voldaan, stopt de uitvoering van het programma wanneer het onderbrekingspunt wordt bereikt en voordat de Console.WriteLine methode wordt uitgevoerd.

  7. Selecteer het venster Locals , waarin de waarden worden weergegeven van variabelen die lokaal zijn voor de momenteel uitgevoerde methode. In dit geval Main is dit de methode die momenteel wordt uitgevoerd. Let op: de waarde van de name variabele is "", of String.Empty.

  8. 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 true.

    ? name == String.Empty
    
    ? String.IsNullOrEmpty(name)
    

    Het vraagteken stuurt het directe venster om een expressie te evalueren.

    Immediate Window returning a value of true after the statement is executed - C#

  9. Druk op F5 om door te gaan met de uitvoering van het programma.

  10. Druk op een willekeurige toets om het consolevenster te sluiten en foutopsporing te stoppen.

  11. 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 onderbrekingspuntvoor foutopsporing > in-/uitschakelen te kiezen terwijl de coderegel is geselecteerd.

Een programma doorlopen

Met Visual Studio kunt u ook regel voor regel door een programma lopen en de uitvoering ervan 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. Hoewel er momenteel geen foutopsporing is en de focus op Visual Studio ligt:

  1. Kies Debug>Step 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.

    C#

    Visual Studio step into method - C#

    Visual Basic

    Visual Studio step into method - Visual Basic

    Op dit moment ziet u in het venster Locals dat de matrix leeg is en namecurrentDate dat deze args standaardwaarden heeft. Daarnaast heeft Visual Studio een leeg consolevenster geopend.

  2. Druk op F11. Visual Studio markeert nu de volgende uitvoeringsregel. Het lokale venster is ongewijzigd en het consolevenster blijft leeg.

    C#

    Visual Studio step in method source - C#

    Visual Basic

    Visual Studio step into method source - Visual Basic

  3. Druk op F11. Visual Studio markeert de instructie die de name variabeletoewijzing bevat. In het venster Locals ziet u dat name , nullen in het consolevenster wordt de tekenreeks 'Wat is uw naam?'.

  4. 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 Console.ReadLine methode legt toch uw invoer vast.

  5. Druk op F11. Visual Studio markeert de instructie die de currentDate variabeletoewijzing bevat. Het venster Locals toont de waarde die wordt geretourneerd door de aanroep naar de Console.ReadLine methode. In het consolevenster wordt ook de tekenreeks weergegeven die u bij de prompt hebt ingevoerd.

  6. Druk op F11. Het venster Locals toont de waarde van de currentDate variabele na de toewijzing van de DateTime.Now eigenschap. Het consolevenster is ongewijzigd.

  7. Druk op F11. Visual Studio roept de Console.WriteLine(String, Object, Object) methode aan. In het consolevenster wordt de opgemaakte tekenreeks weergegeven.

  8. Kies Stap voor foutopsporing>. Een andere manier om stapsgewijze uitvoering te stoppen, is door op Shift+F11 te drukken.

    In het consolevenster wordt een bericht weergegeven en wordt gewacht totdat u op een toets drukt.

  9. Druk op een willekeurige toets om het consolevenster te sluiten en foutopsporing te stoppen.

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 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.

default Visual Studio toolbar with release highlighted

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.

Volgende stappen

In deze zelfstudie hebt u hulpprogramma's voor foutopsporing van Visual Studio gebruikt. In de volgende zelfstudie publiceert u een implementeerbare versie van de app.