Tutorial: Debuggen einer .NET-Konsolenanwendung mit Visual Studio für Mac
Wichtig
Microsoft hat die Ausmusterung von Visual Studio für Mac angekündigt. Visual Studio für Mac wird ab dem 31. August 2024 nicht mehr unterstützt. Zu den Alternativen gehören:
- Visual Studio Code mit dem C# Dev-Kit und verwandten Erweiterungen, z. B. .NET MAUI und Unity.
- Visual Studio wird unter Windows in einer VM auf einem Mac ausgeführt.
- Visual Studio wird unter Windows in einer VM in der Cloud ausgeführt.
Weitere Informationen finden Sie in der Ausmusterungsankündigung von Visual Studio für Mac.
In diesem Tutorial werden die Debugtools vorgestellt, die in Visual Studio für Mac verfügbar sind.
Voraussetzungen
- Dieses Tutorial kann mit der Konsolen-App durchgeführt werden, die Sie in Tutorial: Erstellen einer .NET-Konsolenanwendung mit Visual Studio für Mac erstellen.
Verwenden der Debugbuildkonfiguration
Debug und Release sind zwei Standardbuildkonfigurationen von Visual Studio. Sie verwenden die Debugbuildkonfiguration zum Debuggen und die Releasekonfiguration für die endgültige Releaseverteilung.
In der Debugkonfiguration wird ein Programm mit vollständigen symbolischen Debuginformationen und ohne Optimierung kompiliert. Die Optimierung gestaltet das Debuggen etwas schwieriger, da die Beziehung zwischen Quellcode und generierten Anweisungen komplexer ist. Die Releasekonfiguration eines Programms verfügt über keine symbolischen Debuginformationen und wird vollständig optimiert.
Standardmäßig verwendet Visual Studio für Mac die Debugbuildkonfiguration, sodass Sie diese Einstellung vor dem Debuggen nicht ändern müssen.
Starten Sie Visual Studio für Mac.
Öffnen Sie das Projekt, das Sie in Erstellen einer .NET-Konsolenanwendung mit Visual Studio für Mac erstellt haben.
Die aktuelle Buildkonfiguration wird auf der Symbolleiste angezeigt. Das folgende Symbolleistenbild zeigt, dass Visual Studio konfiguriert wurde, um die Debugversion Ihrer Anwendung zu kompilieren:
Haltepunkt festlegen
Ein Haltepunkt unterbricht vorübergehend die Ausführung der Anwendung, bevor die Zeile mit dem Haltepunkt ausgeführt wird.
Legen Sie einen Haltepunkt in der Zeile fest, in der der Name, das Datum und die Uhrzeit angezeigt werden. Platzieren Sie hierzu den Cursor in der Codezeile, und drücken Sie ⌘\ (BEFEHL+\). Eine andere Möglichkeit zum Festlegen eines Haltepunkts besteht darin, im Menü Debuggen>Haltepunkt umschalten auszuwählen.
Visual Studio hebt die Zeile hervor, in der der Haltepunkt festgelegt ist, und zeigt am linken Rand einen roten Punkt an.
Drücken Sie ⌘↵ (BEFEHL+EINGABETASTE) ein, um das Programm im Debugmodus zu starten. Eine andere Möglichkeit, das Debuggen zu starten, besteht darin, im Menü Debuggen>Debuggen starten zu wählen.
Geben Sie eine Zeichenfolge im Terminalfenster ein, wenn das Programm Sie zur Eingabe eines Namens auffordert, und drücken Sie dann die EINGABETASTE.
Die Ausführung des Programms endet, wenn es den Haltepunkt erreicht, bevor die
Console.WriteLine
-Methode ausgeführt wird.
Verwenden des Fensters „Direkt“
Das Direktfenster dient Ihrer Interaktion mit der Anwendung, die Sie debuggen. Sie können den Wert von Variablen interaktiv ändern, um zu sehen, wie sich dies auf Ihr Programm auswirkt.
Wenn das Fenster Direkt nicht angezeigt wird, blenden Sie es durch Auswählen von Ansicht>Debugfenster>Direkt ein.
Geben Sie
name = "Gracie"
im Fenster Direkt ein, und drücken Sie die EINGABETASTE.Geben Sie
currentDate = currentDate.AddDays(1)
im Fenster Direkt ein, und drücken Sie die EINGABETASTE.Im Fenster Direkt werden der Wert der Zeichenfolgenvariablen und die Eigenschaften des DateTime-Werts angezeigt.
Im Fenster Lokale Variablen werden die Werte von Variablen angezeigt, die in der gerade ausgeführten Methode definiert sind. Die Werte der Variablen, die Sie gerade geändert haben, werden im Fenster Lokale Variablen aktualisiert.
Drücken Sie ⌘↵ (BEFEHL+EINGABETASTE), um das Debuggen fortzusetzen.
Die im Terminal gezeigten Werte entsprechen Ihren Änderungen im Fenster Direkt.
Wenn das Terminal nicht angezeigt wird, wählen Sie auf der unteren Navigationsleiste Terminal – HelloWorld aus.
Drücken Sie eine beliebige Taste, um das Programm zu beenden.
Schließen Sie das Terminalfenster.
Festlegen eines bedingten Breakpoints
Das Programm zeigt eine Zeichenfolge an, die der Benutzer eingibt. Aber was geschieht, wenn der Benutzer gar nichts eingibt? Sie können dies mit einem nützlichen Debugfeature testen, das als Bedingter Breakpoint bezeichnet wird.
Klicken Sie bei gedrückter CTRL-Taste auf den roten Punkt, der den Haltepunkt darstellt. Wählen Sie im Kontextmenü Haltepunkt bearbeiten aus.
Geben Sie im Dialogfeld Haltepunkt bearbeiten den folgenden Code in das folgende Feld ein Und die folgende Bedingung „True“ ist, und wählen Sie Anwenden aus.
String.IsNullOrEmpty(name)
Jedes Mal, wenn der Breakpoint erreicht wird, ruft der Debugger die
String.IsNullOrEmpty(name)
-Methode auf, und die Ausführung wird nur in dieser Zeile unterbrochen, wenn der Methodenaufruftrue
zurückgibt.Anstelle eines bedingten Ausdrucks können Sie eine Trefferanzahl angeben, wodurch die Ausführung des Programms unterbrochen wird, bevor eine Anweisung mit der angegebenen Häufigkeit ausgeführt wird.
Drücken Sie ⌘↵ (BEFEHL+EINGABETASTE), um das Debuggen zu starten.
Drücken Sie im Terminalfenster die EINGABETASTE, wenn Sie zur Eingabe Ihres Namens aufgefordert werden.
Da die angegebene Bedingung erfüllt wurde (
name
ist entwedernull
oder String.Empty), endet die Ausführung des Programms, wenn der Haltepunkt erreicht wird.Wählen Sie das Fenster Lokale Variablen aus, das die Werte der lokalen Variablen der aktuell ausgeführten Methode anzeigt. In diesem Fall ist
Main
die derzeit ausgeführte Methode. Stellen Sie sicher, dass die Variablename
den Wert""
, d. h. String.Empty, hat.Sie können auch erkennen, dass der Wert eine leere Zeichenfolge ist, indem Sie den Namen der Variablen
name
in das Fenster Direkt eingeben und die EINGABETASTE drücken.Drücken Sie ⌘↵ (BEFEHL+EINGABETASTE), um das Debuggen fortzusetzen.
Drücken Sie im Terminalfenster eine beliebige Taste, um das Programm zu beenden.
Schließen Sie das Terminalfenster.
Löschen Sie den Haltepunkt durch Klicken auf den Punkt am linken Rand des Codefensters. Eine andere Möglichkeit, einen Haltepunkt zu löschen, besteht darin, Debuggen > Haltepunkt ein-/ausschalten auszuwählen, während die Codezeile ausgewählt ist.
Schrittweises Ausführen eines Programms
Mit Visual Studio können Sie ein Programm auch zeilenweise durchlaufen und die Ausführung jeder einzelnen Zeile überwachen. Normalerweise würden Sie einen Breakpoint festlegen und den Programmablauf in einem kleinen Teil des Programmcodes verfolgen. Da dieses Programm klein ist, können Sie das gesamte Programm schrittweise durchlaufen.
Legen Sie einen Haltepunkt auf der geschweiften Klammer fest, die den Anfang der
Main
-Methode markiert (drücken Sie Befehl+\).Drücken Sie ⌘↵ (BEFEHL+EINGABETASTE), um das Debuggen zu starten.
Visual Studio wird in der Zeile mit dem Haltepunkt angehalten.
Drücken Sie ⇧⌘I (UMSCHALT+BEFEHL+I), oder wählen Sie Debuggen>Einzelschritt aus, um eine Zeile weiterzugehen.
Visual Studio markiert einen Pfeil neben der nächsten Zeile der Ausführung und zeigt diesen an.
An diesem Punkt wird im Fenster Lokale Variablen angezeigt, dass das
args
-Array leer ist undname
undcurrentDate
Standardwerte aufweisen. Darüber hinaus hat Visual Studio ein leeres Terminal geöffnet.Drücken Sie ⇧⌘I(UMSCHALT+Befehl+I).
Visual Studio hebt die Anweisung hervor, die die Zuweisung der Variablen
name
enthält. Das Fenster Lokale Variablen zeigt, dassname
den Wertnull
aufweist, und das Konsolenfenster zeigt die Zeichenfolge „What is your name?“ an.Reagieren Sie auf die Eingabeaufforderung, indem Sie eine Zeichenfolge in das Konsolenfenster eingeben und die EINGABETASTE drücken.
Drücken Sie ⇧⌘I(UMSCHALT+Befehl+I).
Visual Studio hebt die Anweisung hervor, die die Zuweisung der Variablen
currentDate
enthält. Das Fenster Lokale Variablen zeigt den vom Aufruf der Methode Console.ReadLine zurückgegebenen Wert an. Im Terminal wird die Zeichenfolge angezeigt, die Sie an der Eingabeaufforderung eingegeben haben.Drücken Sie ⇧⌘I(UMSCHALT+Befehl+I).
Das Fenster Lokale Variablen zeigt den Wert der Variablen
currentDate
nach der Zuweisung aus der DateTime.Now-Eigenschaft an. Das Terminal ist unverändert.Drücken Sie ⇧⌘I(UMSCHALT+Befehl+I).
Visual Studio ruft die Console.WriteLine(String, Object, Object)-Methode auf. Das Terminal zeigt die formatierte Zeichenfolge an.
Drücken Sie ⇧⌘u (UMSCHALT+BEFEHL+U), oder wählen Sie Ausführen>Rücksprung aus.
Das Terminal zeigt eine Meldung an und wartet, bis Sie eine Taste drücken.
Drücken Sie eine beliebige Taste, um das Programm zu beenden.
Verwenden der Releasebuildkonfiguration
Nachdem Sie die Debugversion der Anwendung getestet haben, sollten Sie auch die Releaseversion kompilieren und testen. Die endgültige Releaseversion umfasst Compileroptimierungen, die das Verhalten einer Anwendung beeinträchtigen können. Compileroptimierungen, die zur Verbesserung der Leistung entwickelt wurden, können z. B. Racebedingungen in Multithreadanwendungen erstellen.
Um die Releaseversion Ihrer Konsolenanwendung zu erstellen und zu testen, führen Sie die folgenden Schritte aus:
Ändern Sie die Buildkonfiguration auf der Symbolleiste von Debug in Release.
Drücken Sie ⌥⌘↵ (OPTION+BEFEHL+EINGABETASTE) zum Ausführen ohne Debuggen.
Nächste Schritte
In diesem Tutorial haben Sie Debugtools von Visual Studio verwendet. Im nächsten Tutorial veröffentlichen Sie eine bereitstellbare Version der App.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für