Übung – Ausführen von Code in der Debugumgebung

Abgeschlossen

Über die Visual Studio Code-Benutzeroberfläche können Entwickler ihren Code in einer Debugumgebung ausführen. Unterstützung für das Debuggen wird von Erweiterungen bereitgestellt, und für C#-Entwickler wird die Debuggerunterstützung durch dieselbe Erweiterung bereitgestellt, die Unterstützung für die Codeentwicklung und IntelliSense bietet.

Debugger- und Anwendungsinteraktion

Ein Codedebugger kann verwendet werden, um die Codeausführung anzuhalten und fortzusetzen, den Variablenzustand zu untersuchen und sogar die Zur Laufzeit variablen zugewiesenen Werte zu ändern. Sie fragen sich vielleicht, wie der Debugger eine laufende Anwendung steuern und ändern kann. Die kurze Antwort lautet: Der Debugger hat Zugriff auf die Laufzeitumgebung der Anwendung und ausführbaren Code.

Hinweis

Die Debuggerinteraktion mit der Laufzeitumgebung ist ein erweitertes Thema. Darüber hinaus ist das Verständnis der Funktionsweise des Debuggers im Hintergrund keine Voraussetzung für die Verwendung des Debuggers. Die folgende Beschreibung kann Ihre Neugier jedoch befriedigen.

Der Visual Studio Code-Debugger für C# verwendet die .NET-Runtime zum Starten und Interagieren mit einer Anwendung. Wenn Sie den Debugger starten, wird eine neue Instanz der Laufzeit erstellt und die Anwendung in dieser Instanz ausgeführt. Die Laufzeit enthält eine Anwendungsprogrammierschnittstelle (API), die der Debugger zum Anfügen an den ausgeführten Prozess (Ihre Anwendung) verwendet.

Sobald Die Anwendung ausgeführt wird und der Debugger angefügt ist, kommuniziert der Debugger mit dem ausgeführten Prozess mithilfe der Debug-APIs der .NET-Runtime und einem Standarddebugprotokoll. Der Debugger kann mit dem Prozess (der Anwendung, die innerhalb der .NET-Laufzeitinstanz ausgeführt wird) interagieren, indem Haltepunkte festgelegt, Code durchlaufen und Variablen überprüft werden. Mit der Debuggerschnittstelle von Visual Studio Code können Sie im Quellcode navigieren, Aufrufstapel anzeigen und Ausdrücke auswerten.

Die am häufigsten verwendete Methode zum Angeben einer Debugsitzung ist eine Startkonfiguration in der launch.json Datei. Bei diesem Ansatz handelt es sich um die Standardoption, die von den Debuggertools aktiviert wird. Wenn Sie beispielsweise eine C#-Konsolenanwendung erstellen und im Menü "Ausführen" die Option "Debuggen starten" auswählen, verwendet der Debugger diesen Ansatz, um die Anwendung zu starten, anzufügen und dann mit Ihrer Anwendung zu interagieren.

Erstellen eines neuen Codeprojekts

Der erste Schritt beim Erlernen der Debuggertools besteht darin, ein Codeprojekt zu erstellen, das Sie im Debugger ausführen können.

  1. Öffnen Sie eine neue Instanz von Visual Studio Code.

  2. Wählen Sie im Menü "Datei " die Option "Ordner öffnen" aus.

  3. Navigieren Sie im Dialogfeld "Ordner öffnen " zu Ihrem Windows-Desktopordner .

  4. Wählen Sie im Dialogfeld "Ordner öffnen " die Option "Neuer Ordner" aus.

  5. Benennen Sie den neuen Ordner Debug101, und wählen Sie dann " Ordner auswählen" aus.

  6. Wählen Sie im Menü Terminal die Option New Terminal (Neues Terminal) aus.

    Ein .NET CLI-Befehl kann zum Erstellen einer neuen Konsolen-App verwendet werden.

  7. Geben Sie an der Eingabeaufforderung des TERMINALpanels den folgenden Befehl ein:

    dotnet new console
    
  8. Schließen Sie das Panel TERMINAL.

Untersuchen von Startkonfigurationen für das Debuggen

Visual Studio Code verwendet eine Startkonfigurationsdatei, um die Anwendung anzugeben, die in der Debugumgebung ausgeführt wird.

  1. Wenn der Ordner "Debug101" keine Debug101.sln Datei enthält, wählen Sie Program.cs aus, und stellen Sie dann sicher, dass eine .sln Datei erstellt wird.

    Beim Öffnen einer C#-Codedatei wird die Umgebung aufgefordert, nach Projektdateien zu suchen. Die .sln Datei ist eine Lösungsdatei, die von Visual Studio zum Verwalten von Projekten verwendet wird und in der Regel automatisch erstellt wird, wenn Sie ein neues Projekt in Visual Studio Code erstellen. Die .sln Datei wird vom Debugger verwendet, um das Projekt zu identifizieren, das in der Debugumgebung ausgeführt werden soll.

  2. Wählen Sie im Menü "Ansicht" die Befehlspalette aus.

  3. Geben Sie an der Eingabeaufforderung .net: g ein, und wählen Sie dann .NET: Ressourcen für Build und Debug generieren.

  4. Beachten Sie den neuen .vscode Ordner, der Ihrem Projektordner hinzugefügt wurde.

    Screenshot des VSCODE-Ordners im EXPLORER.

    Der .vscode Ordner enthält Dateien, die zum Konfigurieren der Debugumgebung verwendet werden.

  5. Erweitern Sie den .vscode Ordner, und wählen Sie dann die launch.json Datei aus.

  6. Nehmen Sie sich eine Minute Zeit, um die launch.json Datei zu untersuchen.

    Die Startkonfigurationsdatei kann mehrere Konfigurationen enthalten. Jede Konfiguration enthält eine Sammlung von Attributen, die zum Definieren dieser Konfiguration verwendet werden.

  7. Beachten Sie, dass das PrelaunchTask-Attribut eine Buildaufgabe angibt.

  8. Wählen Sie im .vscode Ordner tasks.jsonaus.

  9. Beachten Sie, dass die tasks.json Datei die Buildaufgabe für Ihr Codeprojekt enthält.

  10. Schließen Sie die dateienlaunch.json und tasks.json .

Sie sehen sich die Startkonfigurationsattribute später in diesem Modul genauer an.

Ausführen Ihres Codes über das Menü „Ausführen“

Das Menü "Ausführen" in Visual Studio Code bietet die Möglichkeit, den Code mit oder ohne den Debugger auszuführen.

  1. Öffnen Sie die Datei Program.cs.

  2. Ersetzen Sie den Inhalt Ihrer Program.cs Datei durch den folgenden Code:

    /* 
    This code uses a names array and corresponding methods to display
    greeting messages
    */
    
    string[] names = new string[] { "Sophia", "Andrew", "AllGreetings" };
    
    string messageText = "";
    
    foreach (string name in names)
    {
        if (name == "Sophia")
            messageText = SophiaMessage();
        else if (name == "Andrew")
            messageText = AndrewMessage();
        else if (name == "AllGreetings")
            messageText = SophiaMessage();
            messageText = messageText + "\n\r" + AndrewMessage();
    
        Console.WriteLine(messageText + "\n\r");
    }
    
    bool pauseCode = true;
    while (pauseCode == true);
    
    static string SophiaMessage()
    {
        return "Hello, my name is Sophia.";
    }
    
    static string AndrewMessage()
    {
        return "Hi, my name is Andrew. Good to meet you.";
    }
    
  3. Klicken Sie im Menü File (Datei) auf Save (Speichern).

  4. Öffnen Sie das Menü "Ausführen" .

    Beachten Sie, dass das Menü "Ausführen" Optionen zum Ausführen des Codes mit oder ohne Debuggen bereitstellt.

  5. Wählen Sie im Menü "Ausführen" die Option "Ohne Debuggen ausführen" aus.

  6. Beachten Sie, dass der DEBUG CONSOLE-Bereich die Konsolenausgabe anzeigt und dass auf der Debugsymbolleiste Ausführungssteuerelemente angezeigt werden.

    Der DEBUG CONSOLE-Bereich sollte unterhalb des Code-Editors angezeigt werden. Standardmäßig befindet sich die Debugsymbolleiste (die kleine Symbolleiste mit Codeausführungssteuerelementen) über dem Code-Editor und horizontal zentriert im Visual Studio Code-Fenster.

  7. Wählen Sie auf der Symbolleiste "Debuggen" die Option "Beenden" aus.

Starten einer Debugsitzung über das Menü "Ausführen"

Das Menü "Ausführen" enthält die Option zum Starten einer Debugsitzung.

  1. Wählen Sie im Menü "Ausführen" die Option "Debuggen starten" aus.

  2. Nehmen Sie sich eine Minute Zeit, um die im DEBUG CONSOLE-Bereich angezeigten Nachrichten zu überprüfen.

    Die Ausgabe Ihrer Anwendung ist identisch mit der, wenn Sie die Anwendung ohne Debugging ausführen, aber andere Meldungen zur Vorbereitung der Debug-Umgebung werden angezeigt.

  3. Beachten Sie die Meldungen zum Laden von .NET-Ressourcen und Ihrer Debug101-Anwendung.

    Die ersten beiden Nachrichten liefern das Laden der .NET-Bibliothek und dann Ihre Debug101-Anwendung.

    Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\10.0.0\System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
    Loaded 'C:\Users\someuser\Desktop\Debug101\bin\Debug\net10.0\Debug101.dll'. Symbols loaded.
    

    Der Debugger verwendet eine spezielle Instanz der .NET-Laufzeit, um die Ausführung Ihrer Anwendung zu steuern und den Anwendungsstatus zu bewerten.

  4. Wählen Sie auf der Symbolleiste "Debuggen" die Option "Beenden" aus.

Führen Sie Ihren Code aus der Ansicht "Ausführen und Debuggen" aus

Die RUN AND DEBUG-Ansicht in Visual Studio Code unterstützt eine umfassende Debugerfahrung.

  1. Wechseln Sie zur Ansicht AUSFÜHREN UND DEBUGGEN.

    Screenshot der Ausführungsoption in der Ansicht

  2. Wählen Sie in der Ansicht "AUSFÜHREN UND DEBUGGEN" die Option "Debuggen starten" aus.

    Die Schaltfläche " Debuggen starten " ist der grüne Pfeil in der Systemsteuerung am oberen Rand der Ansicht.

  3. Beachten Sie, dass im DEBUG CONSOLE-Panel die gleichen Meldungen zum Konfigurieren des Debuggers angezeigt werden, die beim Starten eines Debugvorgangs aus dem Menü "Ausführen " angezeigt wurden.

  4. Wählen Sie auf der Symbolleiste "Debuggen" die Option "Beenden" aus.

Untersuchen der Ausgabe Ihrer Anwendung

  1. Bevor Sie den DEBUG CONSOLE-Bereich schließen, nehmen Sie sich eine Minute Zeit, um die von Ihrem Code erzeugte Ausgabe zu überprüfen.

  2. Beachten Sie, dass die Begrüßungsnachricht von Andrew unerwartet wiederholt wird.

Während des restlichen Moduls verwenden Sie die Visual Studio Code-Debuggertools, um Codierungsprobleme zu untersuchen.

Zusammenfassung

Nachstehend finden Sie nochmals die wichtigsten Punkte aus dieser Lerneinheit:

  • Der Visual Studio Code-Debugger für C# verwendet die .NET-Runtime zum Starten und Interagieren mit einer Anwendung.
  • Das Menü "Visual Studio Code Ausführen " verfügt über Optionen zum Starten einer Anwendung mit und ohne angefügten Debugger.
  • Die Debugsymbolleiste enthält eine Schaltfläche zum Beenden eines ausgeführten Prozesses.
  • Die RUN AND DEBUG-Ansicht enthält eine Option zum Starten des Debuggens einer Anwendung.