Självstudie: Felsöka ett .NET-konsolprogram med Visual Studio för Mac
Viktigt!
Microsoft har meddelat att Visual Studio för Mac upphör. Visual Studio för Mac stöds inte längre från och med den 31 augusti 2024. Alternativen är:
- Visual Studio Code med C# Dev Kit och relaterade tillägg, till exempel .NET MAUI och Unity.
- Visual Studio körs på Windows på en virtuell dator på Mac.
- Visual Studio körs på Windows på en virtuell dator i molnet.
Mer information finns i Visual Studio för Mac-meddelande om pensionering.
I den här självstudien beskrivs de felsökningsverktyg som är tillgängliga i Visual Studio för Mac.
Förutsättningar
- Den här självstudien fungerar med konsolappen som du skapar i Skapa ett .NET-konsolprogram med hjälp av Visual Studio för Mac.
Använda konfiguration av felsökningsversion
Felsökning och lansering är Visual Studio inbyggda byggkonfigurationer. Du använder konfigurationen Felsökningsversion för felsökning och versionskonfigurationen för den slutliga versionsdistributionen.
I felsökningskonfigurationen kompileras ett program med fullständig symbolisk felsökningsinformation och ingen optimering. Optimeringen komplicerar felsökningen eftersom relationen mellan källkod och genererade instruktioner är mer komplex. Versionskonfigurationen för ett program har ingen symbolisk felsökningsinformation och är helt optimerad.
Visual Studio för Mac använder som standard konfigurationen för felsökningsversion, så du behöver inte ändra den innan du felsöker.
Starta Visual Studio för Mac.
Öppna projektet som du skapade i Skapa ett .NET-konsolprogram med Visual Studio för Mac.
Den aktuella byggkonfigurationen visas i verktygsfältet. Följande verktygsfältsbild visar att Visual Studio är konfigurerat för att kompilera felsökningsversionen av appen:
Ange en brytpunkt
En brytpunkt avbryter tillfälligt körningen av programmet innan raden med brytpunkten körs.
Ange en brytpunkt på raden som visar namn, datum och tid. Det gör du genom att placera markören på kodraden och trycka på \ ⌘ (kommando).+\ Ett annat sätt att ange en brytpunkt är genom att välja Växla brytpunkt för felsökning>på menyn.
Visual Studio anger den rad där brytpunkten anges genom att markera den och visa en röd punkt i vänstermarginalen.
Tryck på ⌘↵ (kommando+retur) för att starta programmet i felsökningsläge. Ett annat sätt att börja felsöka är genom att välja Felsöka>Starta felsökning från menyn.
Ange en sträng i terminalfönstret när programmet frågar efter ett namn och tryck sedan på Retur.
Programkörningen stoppas när den når brytpunkten innan
Console.WriteLine
metoden körs.
Använd fönstret Omedelbart
Med fönstret Omedelbar kan du interagera med det program som du felsöker. Du kan interaktivt ändra värdet för variabler för att se hur det påverkar ditt program.
Om fönstret Omedelbart inte visas visar du det genom att välja Visa>felsökning av Windows>Omedelbart.
Ange
name = "Gracie"
i fönstret Omedelbart och tryck på Retur.Ange
currentDate = currentDate.AddDays(1)
i fönstret Omedelbart och tryck på Retur.Fönstret Omedelbart visar det nya värdet för strängvariabeln och egenskaperna för DateTime värdet.
Fönstret Lokalt visar värdena för variabler som definieras i metoden som körs just nu. Värdena för de variabler som du just har ändrat uppdateras i fönstret Lokal .
Tryck på ⌘↵ (kommandot+anger) för att fortsätta felsökningen.
Värdena som visas i terminalen motsvarar de ändringar du gjorde i fönstret Omedelbart .
Om du inte ser terminalen väljer du Terminal – HelloWorld i det nedre navigeringsfältet.
Tryck på valfri tangent för att avsluta programmet.
Stäng terminalfönstret.
Ange en villkorsstyrd brytpunkt
Programmet visar en sträng som användaren anger. Vad händer om användaren inte anger något? Du kan testa detta med en användbar felsökningsfunktion som kallas villkorlig brytpunkt.
ctrl-klicka på den röda punkt som representerar brytpunkten. I snabbmenyn väljer du Redigera brytpunkt.
I dialogrutan Redigera brytpunkt anger du följande kod i fältet som följer Och följande villkor är sant och väljer Tillämpa.
String.IsNullOrEmpty(name)
Varje gång brytpunkten slås anropar
String.IsNullOrEmpty(name)
felsökningsprogrammet metoden och den bryts endast på den här raden om metodanropet returnerartrue
.I stället för ett villkorsuttryck kan du ange ett antal träffar, vilket avbryter programkörningen innan en instruktion körs ett angivet antal gånger.
Tryck på ⌘↵ (kommando+retur) för att börja felsöka.
I terminalfönstret trycker du på Retur när du uppmanas att ange ditt namn.
Eftersom villkoret du angav (
name
är antingennull
eller String.Empty) har uppfyllts stoppas programkörningen när den når brytpunkten.Välj fönstret Lokal , som visar värdena för variabler som är lokala för den metod som körs just nu. I det här fallet
Main
är den metod som körs för närvarande. Observera att värdet för variabelnname
är""
, d.v.s String.Empty. .Du kan också se att värdet är en tom sträng genom att ange
name
variabelnamnet i fönstret Omedelbart och trycka på Retur.Tryck på ⌘↵ (kommandot+anger) för att fortsätta felsökningen.
I terminalfönstret trycker du på valfri tangent för att avsluta programmet.
Stäng terminalfönstret.
Rensa brytpunkten genom att klicka på den röda punkten i vänstermarginalen i kodfönstret. Ett annat sätt att rensa en brytpunkt är genom att välja Växla brytpunkt för felsökning > medan kodraden är markerad.
Stega igenom ett program
Med Visual Studio kan du också stega rad för rad genom ett program och övervaka dess körning. Vanligtvis anger du en brytpunkt och följer programflödet genom en liten del av programkoden. Eftersom det här programmet är litet kan du gå igenom hela programmet.
Ange en brytpunkt på klammerparentesen som markerar början av
Main
metoden (tryck på kommandot+\).Tryck på ⌘↵ (kommando+retur) för att börja felsöka.
Visual Studio stannar på raden med brytpunkten.
Tryck på ⇧⌘I (skiftkommando++I) eller välj Felsöka>Steg till för att gå vidare med en rad.
Visual Studio markerar och visar en pil bredvid nästa körningsrad.
Nu visar fönstret Locals att matrisen
args
är tom ochname
currentDate
har standardvärden. Dessutom har Visual Studio öppnat en tom terminal.Tryck på ⇧⌘I (skiftkommando++I).
Visual Studio visar instruktionen som innehåller variabeltilldelningen
name
. Fönstret Locals visar attname
ärnull
, och terminalen visar strängen "Vad är ditt namn?".Svara på uppmaningen genom att ange en sträng i konsolfönstret och trycka på Retur.
Tryck på ⇧⌘I (skiftkommando++I).
Visual Studio visar instruktionen som innehåller variabeltilldelningen
currentDate
. Fönstret Locals visar det värde som returneras av anropet till Console.ReadLine metoden. Terminalen visar strängen som du angav i kommandotolken.Tryck på ⇧⌘I (skiftkommando++I).
Fönstret Lokala värden visar värdet för variabeln
currentDate
efter tilldelningen DateTime.Now från egenskapen. Terminalen är oförändrad.Tryck på ⇧⌘I (skiftkommando++I).
Visual Studio anropar Console.WriteLine(String, Object, Object) metoden. Terminalen visar den formaterade strängen.
Tryck på ⇧⌘U (skiftkommando++U) eller välj Kör>steg ut.
Terminalen visar ett meddelande och väntar på att du ska trycka på en tangent.
Tryck på valfri tangent för att avsluta programmet.
Använda Versionsversionskonfiguration
När du har testat felsökningsversionen av ditt program bör du också kompilera och testa versionsversionen. Versionsversionen innehåller kompilatoroptimeringar som kan påverka beteendet för ett program negativt. Kompilatoroptimeringar som är utformade för att förbättra prestanda kan till exempel skapa konkurrensvillkor i flertrådade program.
Utför följande steg för att skapa och testa versionen av konsolprogrammet:
Ändra byggkonfigurationen i verktygsfältet från Felsökning till Version.
Tryck på ⌥⌘↵ (alternativkommando+retur+) för att köra utan felsökning.
Nästa steg
I den här självstudien använde du Felsökningsverktyg för Visual Studio. I nästa självstudie publicerar du en distributionsbar version av appen.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för