Teilen über


Lernprogramm: Debuggen einer .NET-Konsolenanwendung mit Visual Studio Code

In diesem Lernprogramm werden die in Visual Studio Code verfügbaren Debuggingtools für die Arbeit mit .NET-Apps vorgestellt.

In diesem Lernprogramm werden die Debugtools vorgestellt, die in GitHub Codespaces zum Arbeiten mit .NET-Apps 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 Code erstellen.

Haltepunkt festlegen

Ein Haltepunkt unterbricht vorübergehend die Ausführung der Anwendung, bevor die Zeile mit dem Haltepunkt ausgeführt wird.

  1. Starten Sie Visual Studio Code.

  2. Öffnen Sie den Ordner des Projekts, das Sie in " Erstellen einer .NET-Konsolenanwendung" mit Visual Studio Code erstellt haben.

  3. Öffnen Sie die Datei Program.cs.

  4. Legen Sie einen Haltepunkt in der Zeile fest, der den Namen, das Datum und die Uhrzeit anzeigt, indem Sie auf den linken Rand des Codefensters klicken. Der linke Rand befindet sich links von den Zeilennummern. Weitere Möglichkeiten, einen Haltepunkt festzulegen, sind das Drücken von F9 oder das Auswählen von Ausführen>Haltepunkt umschalten aus dem Menü, während die Codezeile markiert ist.

    Visual Studio Code gibt die Zeile an, in der der Haltepunkt festgelegt wird, indem im linken Rand ein roter Punkt angezeigt wird.

    Haltepunktsatz

  1. Öffnen Sie Ihren GitHub Codespace, den Sie in " Erstellen einer .NET-Konsolenanwendung mit Visual Studio Code" erstellt haben.

  2. Öffnen Sie die HelloWorld.cs Datei.

  3. Legen Sie einen Haltepunkt in der Zeile fest, der den Namen, das Datum und die Uhrzeit anzeigt, indem Sie auf den linken Rand des Codefensters klicken. Der linke Rand befindet sich links von den Zeilennummern. Sie können auch einen Haltepunkt festlegen, indem Sie F9 drücken, während die Codezeile ausgewählt ist.

    Haltepunktsatz

Debuggen starten

Debug und Release sind die integrierten Buildkonfigurationen von .NET. Sie verwenden die Debugbuildkonfiguration zum Debuggen und die Releasekonfiguration für die endgültige Releaseverteilung.

Standardmäßig verwenden Visual Studio Code-Starteinstellungen die Debugbuildkonfiguration, sodass Sie sie vor dem Debuggen nicht ändern müssen.

  1. Öffnen Sie die Debugansicht, indem Sie im linken Menü das Symbol "Debuggen" auswählen.

    Öffnen der Registerkarte

  2. Wählen Sie "Ausführen" und "Debuggen" aus. Wenn Sie gefragt werden, wählen Sie C# und dann "C#: Startprojekt starten" aus. Andere Möglichkeiten zum Starten des Programms im Debugmodus sind das Drücken von F5 oder das Auswählen von "Starten des Debuggens>" im Menü.

    Debuggen starten

  3. Wenn Sie aufgefordert werden, die Startkonfiguration auszuwählen, wählen Sie "C#: Aktive Datei debuggen" aus.

  4. Wählen Sie die Registerkarte " Debugkonsole " aus, um die Eingabeaufforderung "Wie lautet Ihr Name?" anzuzeigen, bevor das Programm auf eine Antwort wartet.

    Wählen Sie die Registerkarte

  5. Geben Sie eine Zeichenfolge im Fenster "Debugkonsole " als Reaktion auf die Eingabeaufforderung für einen Namen ein, und drücken Sie dann die EINGABETASTE.

    Die Programmausführung wird beendet, wenn der Haltepunkt erreicht wird, und bevor die Console.WriteLine Methode ausgeführt wird. Im Abschnitt " Locals " des Fensters "Variablen " werden die Werte von Variablen angezeigt, die in der derzeit ausgeführten Methode definiert sind.

    Haltepunkt getroffen, Lokale Variablen anzeigen

Standardmäßig verwendet GitHub Codespaces die Debugbuildkonfiguration, sodass Sie sie vor dem Debuggen nicht ändern müssen.

  1. Öffnen Sie die Debugansicht, indem Sie im linken Menü das Symbol "Debuggen" auswählen.

    Öffnen der Registerkarte

  2. Wählen Sie "Ausführen" und "Debuggen" aus. Wenn Sie gefragt werden, wählen Sie C# als Debugger aus, und wählen Sie dann "C#: Aktive Datei als Startkonfiguration debuggen" aus.

  3. Wählen Sie die Registerkarte " Debugkonsole " aus, um die Eingabeaufforderung "Wie lautet Ihr Name?" anzuzeigen, bevor das Programm auf eine Antwort wartet.

  4. Geben Sie eine Zeichenfolge im Fenster "Debugkonsole " als Reaktion auf die Eingabeaufforderung für einen Namen ein, und drücken Sie dann die EINGABETASTE.

    Die Programmausführung wird beendet, wenn der Haltepunkt erreicht wird, und bevor die Console.WriteLine Methode ausgeführt wird. Im Abschnitt " Locals " des Fensters "Variablen " werden die Werte von Variablen angezeigt, die in der derzeit ausgeführten Methode definiert sind.

    Breakpoint erreicht, Locals anzeigen

Verwenden der Debugkonsole

Im Fenster " Debugkonsole " können Sie mit der Anwendung interagieren, die Sie debuggen. Sie können den Wert von Variablen ändern, um zu sehen, wie sich dies auf Ihr Programm auswirkt.

  1. Wählen Sie die Registerkarte "Debugkonsole " aus.

  2. Geben Sie name = "Gracie" bei der Eingabeaufforderung unten im "Debugkonsole"-Fenster ein und drücken Sie die EINGABETASTE.

    Ändern von Variablenwerten

  3. Geben Sie currentDate = DateTime.Parse("2026-01-28T20:54:00Z").ToUniversalTime() unten im Fenster Debugkonsole ein und drücken Sie die EINGABETASTE.

    Im Fenster 'Variablen' werden die neuen Werte der Variablen name und currentDate angezeigt.

  4. Fahren Sie mit der Programmausführung fort, indem Sie auf der Symbolleiste die Schaltfläche " Weiter " auswählen. Eine weitere Möglichkeit, fortzufahren, besteht darin, F5 zu drücken.

    Debuggen fortsetzen

    Die im Konsolenfenster angezeigten Werte entsprechen den Änderungen, die Sie in der Debugkonsole vorgenommen haben.

    Terminal mit den eingegebenen Werten

  5. Drücken Sie die EINGABETASTE , um die Anwendung zu beenden und das Debuggen zu beenden.

Festlegen eines bedingten Breakpoints

Das Programm zeigt die Zeichenfolge an, die der Benutzer eingibt. Was geschieht, wenn der Benutzer nichts eingibt? Sie können dies mit einem nützlichen Debugfeature testen, das als Bedingter Breakpoint bezeichnet wird.

  1. Klicken Sie mit der rechten Maustaste auf den roten Punkt, der den Haltepunkt darstellt (Befehl-Taste-Klicken auf macOS). Wählen Sie im Kontextmenü " Haltepunkt bearbeiten" aus, um ein Dialogfeld zu öffnen, in dem Sie einen bedingten Ausdruck eingeben können.

    Kontextmenü

  2. Wählen Sie Expression im Dropdown-Menü aus, geben Sie den folgenden bedingten Ausdruck ein, und drücken Sie die EINGABETASTE.

    String.IsNullOrEmpty(name)
    

    Eingeben eines bedingten Ausdrucks

    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 Methodenaufruf true zurückgibt.

    Statt eines bedingten Ausdrucks können Sie eine Trefferanzahl angeben, wodurch die Programmausführung unterbrochen wird, bevor eine Anweisung eine bestimmte Anzahl von Malen ausgeführt wird. Eine weitere Option besteht darin, eine Filterbedingunganzugeben, die die Programmausführung auf der Grundlage von Attributen wie Threadbezeichner, Prozessname oder Threadname unterbricht.

  3. Starten Sie das Programm mit dem Debuggen, indem Sie F5-drücken.

  4. Drücken Sie auf der Registerkarte " Debugkonsole " die EINGABETASTE , wenn Sie aufgefordert werden, Ihren Namen einzugeben.

    Da die angegebene Bedingung (name ist entweder null oder String.Empty) erfüllt wurde, beendet die Programmausführung, wenn sie den Haltepunkt erreicht, und bevor die Console.WriteLine Methode ausgeführt wird.

    Das Fenster für Variablen zeigt, dass der Wert der name-Variable "", oder String.Empty ist.

  5. Bestätigen Sie, dass der Wert eine leere Zeichenfolge ist, indem Sie an der Eingabeaufforderung der Debugkonsole die folgende Anweisung eingeben und die EINGABETASTE drücken. Das Ergebnis ist true.

    name == String.Empty
    
  6. Wählen Sie die Schaltfläche " Weiter " auf der Symbolleiste aus, um die Programmausführung fortzusetzen.

  7. Drücken Sie die EINGABETASTE , um das Programm zu beenden und das Debuggen zu beenden.

  8. Löschen Sie den Breakpoint durch Klicken auf den Punkt am linken Rand des Codefensters. Andere Möglichkeiten zum Löschen eines Haltepunkts sind, F9 zu drücken oder im Menü Run>Haltepunkt umschalten auszuwählen, wenn die Codezeile ausgewählt ist.

  9. Wenn Sie eine Warnung erhalten, dass die Haltepunktbedingung verloren geht, wählen Sie "Haltepunkt entfernen" aus.

Schrittweises Ausführen eines Programms

Visual Studio Code ermöglicht ihnen außerdem, eine Zeile nach Zeile durch ein Programm zu durchlaufen und die Ausführung zu ü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 durchlaufen.

  1. Legen Sie einen Haltepunkt in der Codezeile fest, der die Eingabeaufforderung "Was ist Ihr Name?" anzeigt.

  2. Drücken Sie F5 , um mit dem Debuggen zu beginnen.

    Visual Studio Code hebt die Haltepunktlinie hervor.

    An diesem Punkt zeigt das Fenster "Variablen " an, dass das args Array leer ist und namecurrentDate Standardwerte aufweist.

  3. Wählen Sie in der Debugsymbolleiste "Schritt in" aus, oder drücken Sie F11.

    Step-Into-Schaltfläche

    Visual Studio Code hebt die nächste Zeile hervor.

  4. Visual Studio Code führt die Console.WriteLine Namensaufforderung aus und hebt die nächste Ausführungszeile hervor. Die nächste Zeile ist die Console.ReadLine für die name. Das Fenster "Variablen " ist unverändert, und auf der Registerkarte " Terminal " wird die Eingabeaufforderung "Wie lautet Ihr Name?" angezeigt.

  5. Wählen Sie "Schritt in" aus, oder drücken Sie F11.

    Visual Studio Code hebt die name Variablezuweisung hervor. Das Fenster Variablen zeigt, dass name immer noch null ist.

  6. Antworten Sie auf die Eingabeaufforderung, indem Sie auf der Registerkarte "Terminal" eine Zeichenfolge eingeben und die EINGABETASTE drücken.

    Auf der Registerkarte " Debugkonsole " wird möglicherweise nicht die Zeichenfolge angezeigt, die Sie eingeben, während Sie sie eingeben, aber die Console.ReadLine Methode erfasst Ihre Eingabe.

  7. Wählen Sie "Schritt in" aus, oder drücken Sie F11.

    Visual Studio Code hebt die currentDate Variablezuweisung hervor. Das Fenster "Variablen" zeigt den Wert an, der vom Aufruf der Console.ReadLine Methode zurückgegeben wird. Auf der Registerkarte "Terminal " wird die Zeichenfolge angezeigt, die Sie an der Eingabeaufforderung eingegeben haben.

  8. Wählen Sie "Schritt in" aus, oder drücken Sie F11.

    Das Fenster "Variablen " zeigt den Wert der currentDate Variablen nach der Zuordnung aus der DateTime.Now Eigenschaft an.

  9. Wählen Sie "Schritt in" aus, oder drücken Sie F11.

    Visual Studio Code ruft die Console.WriteLine(String, Object, Object) Methode auf. Das Konsolenfenster zeigt die formatierte Zeichenfolge an.

  10. Wählen Sie "Schritt zurück" oder drücken Sie Shift+F11.

     Schaltfläche

    Das Terminal zeigt "Drücken Sie eine beliebige Taste zum Beenden..." an.

  11. Drücken Sie eine beliebige Taste, um das Programm zu beenden.

Verwenden der Releasebuildkonfiguration

Nachdem Sie die Debugversion Ihrer Anwendung getestet haben, sollten Sie auch die Releaseversion kompilieren und testen. Die Releaseversion enthält Compileroptimierungen, die sich auf das Verhalten einer Anwendung auswirken 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, öffnen Sie das Terminal , und führen Sie den folgenden Befehl aus:

dotnet run --configuration Release

Führen Sie zum Erstellen und Testen der Releaseversion Ihrer Konsolenanwendung den folgenden Befehl im Terminal aus:

dotnet run --configuration Release HelloWorld.cs

Nächste Schritte

In diesem Lernprogramm haben Sie die Debugging-Tools von Visual Studio Code verwendet. Im nächsten Tutorial veröffentlichen Sie eine einsatzbereite Version der App.