Delen via


Zelfstudie: Fouten opsporen in een .NET-consoletoepassing met behulp van Visual Studio voor Mac

Belangrijk

Microsoft heeft de buitengebruikstelling van Visual Studio voor Mac aangekondigd. Visual Studio voor Mac wordt vanaf 31 augustus 2024 niet meer ondersteund. Alternatieven zijn:

Zie Visual Studio voor Mac aankondiging van buitengebruikstelling voor meer informatie.

In deze zelfstudie worden de hulpprogramma's voor foutopsporing geïntroduceerd die beschikbaar zijn in Visual Studio voor Mac.

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.

Standaard gebruikt Visual Studio voor Mac de buildconfiguratie voor foutopsporing, dus u hoeft deze niet te wijzigen voordat u fouten opspoort.

  1. Start Visual Studio voor Mac.

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

    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 waarin de naam, datum en tijd worden weergegeven. Plaats hiervoor de cursor in de coderegel en druk op \ (opdracht+\). Een andere manier om een onderbrekingspunt in te stellen, is door Foutopsporingsonderbrekingspunt > te selecteren in het menu.

    Visual Studio geeft 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 (opdracht+Enter) om het programma te starten 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 terminalvenster 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 voordat de Console.WriteLine methode 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, kunt u dit weergeven door Direct foutopsporing in Windows>weergeven>te kiezen.

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

  3. Voer in currentDate = currentDate.AddDays(1) het venster Direct in en druk op Enter.

    In het venster Direct wordt de nieuwe waarde van de tekenreeksvariabele en de eigenschappen van de DateTime waarde weergegeven.

    Immediate Window in Visual Studio

    In het venster Locals worden de waarden weergegeven van variabelen die zijn gedefinieerd in de methode die momenteel wordt uitgevoerd. De waarden van de variabelen die u zojuist hebt gewijzigd, worden bijgewerkt in het venster Locals .

    Locals Window in Visual Studio

  4. Druk op (opdracht+Enter) om door te gaan met foutopsporing.

    De waarden die in de terminal worden weergegeven, komen overeen met de wijzigingen die u in het venster Direct hebt aangebracht.

    Als u de Terminal niet ziet, selecteert u Terminal - HelloWorld in de onderste navigatiebalk.

    Terminal - Hello World in bottom navigation bar

  5. Druk op een willekeurige toets om het programma af te sluiten.

  6. Sluit het terminalvenster.

Een voorwaardelijk onderbrekingspunt instellen

In het programma wordt een 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. Ctrl-klik op de rode stip die het onderbrekingspunt vertegenwoordigt. Selecteer Onderbrekingspunt bewerken in het contextmenu.

  2. Voer in het dialoogvenster Onderbrekingspunt bewerken de volgende code in het veld dat volgt en de volgende voorwaarde is waar en selecteer Toepassen.

    String.IsNullOrEmpty(name)
    

    Editor showing breakpoint settings panel

    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.

  3. Druk op (opdracht+Enter) om foutopsporing te starten.

  4. Druk in het terminalvenster op Enter wanneer u wordt gevraagd uw naam in te voeren.

    Omdat aan de opgegeven voorwaarde (name is of null String.Empty) is voldaan, stopt de uitvoering van het programma wanneer het onderbrekingspunt wordt bereikt.

  5. 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, dat wil String.Empty""gezegd.

  6. U kunt ook zien dat de waarde een lege tekenreeks is door de naam van de name variabele in het venster Direct in te voeren en op Enter te drukken.

    Immediate window showing name is an empty string

  7. Druk op (opdracht+Enter) om door te gaan met foutopsporing.

  8. Druk in het terminalvenster op een willekeurige toets om het programma af te sluiten.

  9. Sluit het terminalvenster.

  10. Wis het onderbrekingspunt door te klikken op de rode stip in de linkermarge van het codevenster. Een andere manier om een onderbrekingspunt te wissen, is door foutopsporingsonderbrekingspunt > 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. Stel een onderbrekingspunt in op de accolade die het begin van de Main methode markeert (druk op de opdracht\+).

  2. Druk op (opdracht+Enter) om foutopsporing te starten.

    Visual Studio stopt op de regel met het onderbrekingspunt.

  3. Druk op I (shift+command+I) of selecteer Stap voor foutopsporing> om één regel verder te gaan.

    Visual Studio markeert en geeft een pijl weer naast de volgende uitvoeringsregel.

    Visual Studio step into method

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

  4. Druk op I (shift+command+I).

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

  5. Reageer op de prompt door een tekenreeks in het consolevenster in te voeren en op Enter te drukken.

  6. Druk op I (shift+command+I).

    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 de terminal wordt de tekenreeks weergegeven die u bij de prompt hebt ingevoerd.

  7. Druk op I (shift+command+I).

    Het venster Locals toont de waarde van de currentDate variabele na de toewijzing van de DateTime.Now eigenschap. De terminal is ongewijzigd.

  8. Druk op I (shift+command+I).

    Visual Studio roept de Console.WriteLine(String, Object, Object) methode aan. In de terminal wordt de opgemaakte tekenreeks weergegeven.

  9. Druk op U (shift-opdracht++U) of selecteer Uitstappen>uitvoeren.

    In de terminal wordt een bericht weergegeven en wordt gewacht totdat u op een toets drukt.

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

Voer de volgende stappen uit om de releaseversie van de consoletoepassing te bouwen en te testen:

  1. Wijzig de buildconfiguratie op de werkbalk van Foutopsporing in Release.

    default Visual Studio toolbar with release highlighted

  2. Druk op (optieopdracht++Enter) om zonder foutopsporing uit te voeren.

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.