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:
- Visual Studio Code met de C# Dev Kit en gerelateerde extensies, zoals .NET MAUI en Unity.
- Visual Studio die wordt uitgevoerd op Windows op een VIRTUELE machine op mac.
- Visual Studio die wordt uitgevoerd op Windows op een virtuele machine in de cloud.
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
- Deze zelfstudie werkt met de console-app die u maakt in Een .NET-consoletoepassing maken met behulp van Visual Studio voor Mac.
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.
Start Visual Studio voor Mac.
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:
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 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.
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.
Voer een tekenreeks in het terminalvenster in wanneer het programma om een naam vraagt en druk op Enter.
De uitvoering van het programma wordt gestopt wanneer het onderbrekingspunt wordt bereikt voordat de
Console.WriteLine
methode wordt uitgevoerd.
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.
Als het venster Direct niet zichtbaar is, kunt u dit weergeven door Direct foutopsporing in Windows>weergeven>te kiezen.
Voer in
name = "Gracie"
het venster Direct in en druk op Enter.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.
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 .
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.
Druk op een willekeurige toets om het programma af te sluiten.
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.
Ctrl-klik op de rode stip die het onderbrekingspunt vertegenwoordigt. Selecteer Onderbrekingspunt bewerken in het contextmenu.
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)
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.
Druk op ⌘↵ (opdracht+Enter) om foutopsporing te starten.
Druk in het terminalvenster 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.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 dename
variabele is, dat wil String.Empty""
gezegd.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.Druk op ⌘↵ (opdracht+Enter) om door te gaan met foutopsporing.
Druk in het terminalvenster op een willekeurige toets om het programma af te sluiten.
Sluit het terminalvenster.
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.
Stel een onderbrekingspunt in op de accolade die het begin van de
Main
methode markeert (druk op de opdracht\+).Druk op ⌘↵ (opdracht+Enter) om foutopsporing te starten.
Visual Studio stopt op de regel met het onderbrekingspunt.
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.
Op dit moment ziet u in het venster Locals dat de matrix leeg is en
name
currentDate
dat dezeargs
standaardwaarden heeft. Daarnaast heeft Visual Studio een lege terminal geopend.Druk op ⇧⌘I (shift+command+I).
Visual Studio markeert de instructie die de
name
variabeletoewijzing bevat. In het venster Locals ziet u datname
,null
en in de terminal wordt de tekenreeks 'Wat is uw naam?' weergegeven.Reageer op de prompt door een tekenreeks in het consolevenster in te voeren en op Enter te drukken.
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.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.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.
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.
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:
Wijzig de buildconfiguratie op de werkbalk van Foutopsporing in Release.
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.