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 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:
Visual Studio 2022, Version 17.8 oder höher
Anmeldung bei Visual Studio mit einem GitHub-Konto mit Copilot-Zugriff
** Sie können GitHub Copilot kostenlos verwenden. Registrieren Sie sich, und nutzen Sie KI, um schneller und effizienter zu programmieren.GitHub Copilot in Visual Studio
GitHub Copilot Chat in Visual Studio
Hinweis
Wenn nach der Installation der Erweiterung Authentifizierungsprobleme auftreten, lesen Sie Beheben von Authentifizierungsproblemen mit GitHub Copilot Chat.
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
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.
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"); } }
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]);
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.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.
Geben Sie die folgende Frage in die Inline-Chat-Ansicht ein.
Why does the args variable have a value of string[0]?
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.)
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".
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?"
Copilot zeigt einen vorgeschlagenen Fix für Ihren Code an.
Wenn Sie die Codekorrektur anwenden möchten, wählen Sie Annehmenaus.
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
Wenn die Anwendung bei der Ausnahme angehalten wurde, wählen Sie die Schaltfläche Copilot fragen aus.
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.
Wählen Sie die Schaltfläche Vorschau aus.
Visual Studio zeigt eine Codevorschau mit dem vorgeschlagenen Fix an.
Überprüfen Sie den vorgeschlagenen Fix, und wählen Sie Annehmen aus, um den Codevorschlag anzuwenden.
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.
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.
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); }
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.Wählen Sie das Ausdrucksfeld aus, und Copilot beginnt mit der Bearbeitung von Vorschlägen.
Wenn die Vorschläge angezeigt werden, wählen Sie eins wie
item == "John"
aus. Bearbeiten Sie den Vorschlag so, dass der NameFred
ist.So testen Sie den bedingten Ausdruck:
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das ConsoleApp_Copilot-Projekt, und wählen Sie Eigenschaften aus.
Wählen Sie Debuggen>Allgemein>Öffnen der Benutzeroberfläche von Debugstartprofilen aus.
Geben Sie im Feld Befehlszeilenargumente
5 Fred Joe
in drei separate Zeilen ein.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 WertFred
ist.
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". 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.