Freigeben über


Debuggen Ihrer App mit GitHub Copilot in Visual Studio

In diesem Artikel erfahren Sie, wie Sie mit GitHub Copilot effizienter debuggen können. Copilot kann Code-Korrekturen zusammen mit umfassender Analyse und Erläuterungen, wie Code funktioniert, bereitstellen. Es hilft bei vorgeschlagenen Fixes für Fehler und erläutert Dinge wie Ausnahmen. Copilot versteht Aufrufstapel, Frames, Variablennamen und Werte. Daher können Sie mit der debuggerfähigen KI interagieren, um detaillierte Fragen zu Ihrem Code und zum Debuggen von Problemen im Allgemeinen zu stellen.

Darüber hinaus bietet Copilot präzisere Hilfe für einige gezielte Szenarien, wie etwa Ausnahmen, und alle in beschriebenen KI-optimierten Szenarien zum Debuggen. In den meisten dieser Szenarien suchen Sie nach der Schaltfläche Copilot fragenScreenshot: Schaltfläche „Copilot fragen“.. In diesen Szenarien kennt Copilot bereits den Kontext für Ihre Fragen.

Weitere Informationen zu GitHub Copilot-Vervollständigungen in Visual Studio finden Sie unter Informationen zu GitHub Copilot-Vervollständigungen in Visual Studio.

Voraussetzungen

Zum Loslegen benötigen Sie Folgendes:

Debuggen mit Copilot

Das folgende einfache Beispiel zeigt, wie Sie KI-Unterstützung mithilfe der Inlinechatansicht erhalten.

Hinweis

Sie können auch Hilfe über das separate Chatfenster erhalten, indem Sie Ansicht > GitHub Copilot Chat auswählen. Weitere Informationen finden Sie unter Was ist die GitHub Copilot Chat-Erweiterung für Visual Studio?.

Starten einer Debugsitzung

  1. Erstellen Sie in Visual Studio eine neue C#-Konsolen-App.

    Wählen Sie im Startfenster Neues Projekt erstellen aus. Geben Sie Konsolen- in das Suchfeld ein, wählen Sie C#- als Sprache aus, und wählen Sie dann Konsolen-App- für .NET aus. Wählen Sie Weiteraus. Geben Sie einen Projektnamen wie ConsoleApp_Copilot ein, und wählen Sie Weiteraus.

    Wählen Sie entweder das empfohlene Zielframework oder .NET 8 aus, und wählen Sie Erstellen aus.

    Wenn die .NET-Projektvorlage Konsolen-App nicht angezeigt wird, navigieren Sie zu Extras>Tools und Features abrufen..., woraufhin der Visual Studio-Installer geöffnet wird. Wählen Sie beispielsweise die Workload .NET-Desktopentwicklung aus, und klicken Sie anschließend auf Ändern.

    Visual Studio erstellt das Konsolenprojekt, das im Projektmappen-Explorer im rechten Bereich angezeigt wird.

  2. Ersetzen Sie den Code in Program.cs durch den folgenden Code.

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
        public static void Main(string[] args)
        {
            int value = Int32.Parse(args[0]);
            List<String> names = null;
            if (value > 0)
                names = new List<String>();
    
            names.Add("Major Major Major");
        }
    }
    
  3. Klicken Sie mit der rechten Maustaste auf die folgende Anweisung und wählen Sie Haltepunkt>Haltepunkt einfügen aus.

    int value = Int32.Parse(args[0]);
    
  4. Drücken Sie F5 oder wählen Sie Debuggen starten im Debug Menü aus.

    Die App hält am Haltepunkt an. Das Fenster "Autos" zeigt, dass die args-Variable einen Wert von string[0]hat.

    Screenshot des Autos-Fensters.

  5. Klicken Sie mit der rechten Maustaste in den Code, und wählen Sie Ask Copilot aus, um die Inline-Chatansicht zu öffnen.

    Tipp

    Alternativ können Sie im Fenster "Autos" oder "Locals" oder in einem Datentipp mit der rechten Maustaste auf eine Variable klicken und "Copilot fragen"auswählen. Dadurch werden der Variablenname und der Kontext an Copilot übermittelt, sodass Sie den Kontext nicht selbst im Chat angeben müssen.

  6. Geben Sie die folgende Frage in die Inline-Chat-Ansicht ein.

    Why does the args variable have a value of string[0]?
    

    Screenshot des Copilot Chats (inline).

    Wenn Sie die EINGABETASTE drücken, erteilt Copilot basierend auf dem Verständnis Ihres Codes eine Antwort. (Möglicherweise erhalten Sie eine andere Antwort als die hier gezeigten.)

    Screenshot der von Copilot beantworteten Frage.

    Wenn Copilot einen vorgeschlagenen Fix für Ihren Code hat, zeigt es Sie an. Wenn nicht, können Sie Copilot nach einem Codevorschlag fragen.

    Tipp

    Verwenden Sie im Inlinechat das Symbol "#", und wählen Sie aus der Dropdownliste aus, um bestimmte Informationen an Copilot zu übergeben, während Sie in Ihrer Frage darauf verweisen. Wenn Sie z. B. einen Teil von Code auswählen und dann "#" eingeben, können Sie diese Auswahl aus der Dropdownliste # auswählen. Sie können auch das Symbol "#" verwenden, um auf IDE-Features zu verweisen, die in der Dropdownliste angezeigt werden, z. B. das Fenster "Lokal".

  7. Scrollen Sie in diesem Beispiel zum Ende der Copilot-Antwort, und wählen Sie die Nachverfolgungsfrage am Ende des Inline-Chatfensters aus: "Wie kann ich den Fall behandeln, wenn keine Argumente an das Programm übergeben werden?"

    Screenshot der Copilot-Nachverfolgungsfrage.

    Copilot zeigt einen vorgeschlagenen Fix für Ihren Code an.

    Screenshot der von Copilot vorgeschlagenen Korrektur.

    Wenn Sie die Codekorrektur anwenden möchten, wählen Sie Annehmenaus.

  8. Wählen Sie Cancel aus, damit wir weitere Features von Copilot im nächsten Abschnitt erlernen können.

Debuggen einer Ausnahme mit Copilot

Das folgende einfache Beispiel zeigt, wie Sie KI-Unterstützung erhalten, wenn sie auf eine Ausnahme stoßen und wie Sie Ihren Code basierend auf KI-vorgeschlagenen Fixes schnell aktualisieren.

Starten einer Debugsitzung

  • Während der Pausierung im Debugger mit derselben Beispiel-App drücken Sie F11 oder Debuggen>Einzelschritt, um die aktuelle Anweisung auszuführen.

    Eine IndexOutOfRangeException tritt auf, und die App wird angehalten, wobei die Ausnahme angezeigt wird.

    Um KI-Unterstützung für die Ausnahme zu erhalten, fahren Sie mit dem nächsten Abschnitt fort.

Anfordern von KI-Unterstützung

  1. Wenn die Anwendung bei der Ausnahme angehalten wurde, wählen Sie die Schaltfläche Copilot fragen aus.

    Screenshot der Schaltfläche

    Wenn es noch nicht geöffnet ist, wird das Fenster "Copilot-Chat" angezeigt und stellt eine Bewertung des Fehlers und der Gründe für den Fehler bereit. In diesem Beispiel identifiziert Copilot eine vorgeschlagene Codekorrektur, eine Schaltfläche zum Kopieren von Code und die Schaltfläche Vorschau für die Codekorrektur.

    Wenn Sie Fragen zur Ausnahme haben, stellen Sie sie im Textfeld "Copilot fragen" an.

  2. Wählen Sie die Schaltfläche Vorschau aus.

    Screenshot der Schaltfläche

    Visual Studio zeigt eine Codevorschau mit dem vorgeschlagenen Fix an.

  3. Überprüfen Sie den vorgeschlagenen Fix, und wählen Sie Annehmen aus, um den Codevorschlag anzuwenden.

    Screenshot der Codevorschau in Visual Studio.

  4. Starten Sie den Debugger neu.

    Diesmal tritt keine Ausnahme auf. Es wurde behoben!

Erhalten von Vorschlägen für bedingte Haltepunkte und Ablaufverfolgungspunkte

Copilot gibt Ihnen Vorschläge für bedingte Haltepunkte und Ablaufverfolgungspunkte, die spezifisch für Ihren Code sind.

In diesem Beispiel zeigen wir KI-Vorschläge für einen bedingten Haltepunkt an. Bei Ablaufverfolgungspunkten funktioniert die KI-Unterstützung auf die gleiche Weise.

  1. Entfernen Sie den aktuellen Haltepunkt, indem Sie darauf klicken oder indem Sie mit der rechten Maustaste darauf klicken, und wählen Sie Haltepunkt löschen aus.

  2. Ersetzen Sie die folgende Codezeile:

    names.Add("Major Major Major");
    

    durch diesen:

    // names.Add("Major Major Major");
    foreach (var item in args)
    {
       names.Add("Name: " + item);
    }
    
  3. Klicken Sie links neben der names.Add("Name: " + item)-Anweisung mit der rechten Maustaste auf den Bundsteg und wählen Sie Bedingten Haltepunkt einfügen aus.

  4. Wählen Sie das Ausdrucksfeld aus, und Copilot beginnt mit der Bearbeitung von Vorschlägen.

    Screenshot von Copilot, während Copilot an Vorschlägen für bedingte Haltepunkte arbeitet.

  5. Wenn die Vorschläge angezeigt werden, wählen Sie eins wie item == "John"aus. Bearbeiten Sie den Vorschlag so, dass der Name Fredist.

    Screenshot des Copilot-Vorschlags für bedingten Haltepunkt.

  6. So testen Sie den bedingten Ausdruck:

    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das ConsoleApp_Copilot-Projekt, und wählen Sie Eigenschaften aus.

    2. Wählen Sie Debuggen>Allgemein>Öffnen der Benutzeroberfläche von Debugstartprofilen aus.

    3. Geben Sie im Feld Befehlszeilenargumente 5 Fred Joe in drei separate Zeilen ein.

      Screenshot der Eingabe von Befehlszeilenargumenten für das Projekt.

    4. Starten Sie den Debugger neu.

    Wenn der Debugger am Haltepunkt anhält, überprüfen Sie den Wert von item und stellen Sie sicher, dass der aktuelle Wert Fredist.

KI-erweiterte Szenarien

Copilot versteht Aufrufstapel, Frames, Variablennamen und Werte. Daher können Sie mit der debuggerfähigen KI interagieren, um detaillierte Fragen zu Ihrem Code und zum Debuggen von Problemen im Allgemeinen zu stellen.

Darüber hinaus bietet Copilot genauere Hilfe für einige gezielte Szenarien, z. B. die in der folgenden Tabelle beschriebenen.

Feature oder Szenario Link
Ausnahmen Siehe Debuggen einer Ausnahme mit Copilot in diesem Artikel. Hilfe zu Ausnahmen umfasst Hilfe bei Deadlockerkennungsfehlern.
Variablen Weitere Informationen finden Sie unter Debuggen mit Copilot in diesem Artikel.
Bedingte Haltepunkte und Ablaufverfolgungspunkte Weitere Informationen finden Sie in diesem Artikel unter Erhalten von Vorschlägen für bedingte Haltepunkte und Ablaufverfolgungspunkte.
Schnelle Aktionen (Glühbirne) Siehe Erhalt von KI-Unterstützung mit schnellen Aktionen.
IEnumerable-Tabellenschnellansicht Siehe Ändern des Visualizer-Ausdrucks.
Inline-Rückgabewerte Siehe Anzeigen von Rückgabewerten von Methodenaufrufen.
Beschreibungen von Zusammenfassungsthreads Siehe Threadansicht (parallele Stapel).
Automatisierte Einblicke für Profilerstellung Siehe Erhalten Sie KI-Unterstützung mit Auto Insights.

In den meisten dieser Szenarien erhalten Sie gezielte Unterstützung, indem Sie die Schaltfläche "Ask Copilot"verwenden. Screenshot der Schaltfläche . Copilot kennt bereits den Kontext für Ihre Fragen. Sie kennt beispielsweise den aktuellen Aufrufstapel, die Codezeile, nach der Sie fragen, und den Namen der Ausnahme (falls vorhanden), sodass Sie keinen Kontext selbst im Chat bereitstellen müssen. Copilot bietet auch Vorschläge für die Verwendung von bedingten Haltepunkten und Ablaufverfolgungspunkten.