Debuggen Ihrer App mit GitHub Copilot in Visual Studio
In diesem Artikel erfahren Sie, wie Sie GitHub Copilot für ein effizienteres Debuggen nutzen. Copilot kann Codefehlerbehebungen sowie ausführliche Analysen und Erläuterungen zur Funktionsweise von Code liefern. Es hilft bei der vorgeschlagenen Fehlerbehebung und erklärt die Vorgänge wie z. B. Ausnahmen. Copilot versteht Aufruflisten, Frames, Variablennamen und Werte. Daher können Sie mit der debuggerfähigen KI interagieren und detaillierte Fragen zu Ihrem Code und zum Debuggen von Problemen im Allgemeinen stellen.
Darüber hinaus bietet Copilot genauere Hilfe für einige gezielte Szenarien, z. B. die folgenden:
- Ausnahmen
- Variablen
- Deadlocks
- Schnelle Aktionen (Glühbirne)
KI-Unterstützung erhalten Sie beim Debuggen in diesen Szenarien über die Schaltfläche Copilot fragen. In diesen Szenarien kennt Copilot bereits den Kontext für Ihre Fragen. Es kennt beispielsweise die aktuelle Aufrufliste, die Codezeile, nach der Sie fragen, und den Namen der Ausnahme (falls eine aufgetreten ist), sodass Sie nicht selbst Kontext im Chat bereitstellen müssen. Copilot bietet auch Vorschläge für die Verwendung von bedingten Breakpoints und Ablaufverfolgungspunkten.
Weitere Informationen zu GitHub Copilot-Erweiterungen in Visual Studio finden Sie unter Informationen zu GitHub Copilot-Erweiterungen in Visual Studio.
Voraussetzungen
Zunächst benötigen Sie Folgendes:
Visual Studio 2022, Version 17.8 oder höher
Aktives Abonnement für GitHub Copilot for Individuals oder GitHub Copilot for Business
GitHub Copilot in Visual Studio
-
Hinweis
Wenn nach der Installation der Erweiterung Authentifizierungsprobleme auftreten, lesen Sie Beheben von Authentifizierungsproblemen mit GitHub Copilot Chat.
Anfordern von KI-Unterstützung zum Debuggen der App
Das folgende einfache Beispiel zeigt, wie Sie mithilfe der Inlinechatansicht KI-Unterstützung erhalten.
Hinweis
Sie erhalten auch über das separate Chatfenster Hilfe, indem Sie GitHub Copilot Chat >anzeigen 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 im Suchfeld Konsole ein, wählen Sie als Sprache C# aus, und wählen Sie dann die Vorlage Konsolen-App für .NET aus. Wählen Sie Weiter aus. Geben Sie einen Projektnamen wie ConsoleApp_Copilot ein, und wählen Sie Weiter aus.
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 Tools>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 (rechter 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 dann Haltepunkt>Haltepunkt einfügen aus.
int value = Int32.Parse(args[0]);
Drücken Sie F5, oder wählen Sie im Menü Debuggen die Option Debuggen starten aus.
Die App hält am Haltepunkt an. Das Fenster „Auto“ zeigt, dass die Argumentvariable einen Wert aufweist
string[0]
.Klicken Sie mit der rechten Maustaste auf den Code, und wählen Sie Copilot fragen aus, um die Inlinechatansicht zu öffnen.
Tipp
Alternativ können Sie im Fenster „Autos“ oder „Lokale Variablen“ oder in einem Datentipp mit der rechten Maustaste auf eine Variable klicken und Copilot fragen auswählen. Wenn Sie dies tun, erhält Copilot den Variablennamen und den Kontext, sodass Sie im Chat nicht selbst Kontext bereitstellen müssen.
Geben Sie in der Inlinechatansicht die folgende Frage ein:
Why does the args variable have a value of string[0]?
Wenn Sie die Eingabetaste drücken, gibt Copilot auf der Grundlage Ihres Codes eine Antwort. (Möglicherweise erhalten Sie eine andere Antwort als die hier dargestellte.)
Wenn Copilot einen Korrekturvorschlag für Ihren Code hat, wird er angezeigt. Andernfalls können Sie Copilot nach einem Codevorschlag fragen.
Tipp
Verwenden Sie im Inlinechat das Symbol # und wählen Sie aus der Einblendliste aus, um bestimmte Informationen an Copilot zu übergeben, während Sie in Ihrer Frage darauf verweisen. Wenn Sie beispielsweise einen Teil von Code auswählen und dann # eingeben, können Sie diese Auswahl aus der # Einblendliste auswählen. Sie können auch das Symbol # verwenden, um auf IDE-Features zu verweisen, die in der Einblendliste angezeigt werden, z. B. das Fenster Lokal.
Scrollen Sie in diesem Beispiel zum Ende der Copilot-Antwort, und wählen Sie die Folgefrage am Ende des Inlinechatfensters aus: „Wie kann ich den Fall behandeln, wenn keine Argumente an das Programm übergeben werden?“
Copilot zeigt einen Korrekturvorschlag für Ihren Code an.
Wenn Sie die Codekorrektur anwenden möchten, wählen Sie Annehmen aus.
Wählen Sie Abbrechen aus, wenn Sie fortfahren und weitere Features von Copilot im nächsten Abschnitt kennen lernen können.
Anfordern von KI-Unterstützung für eine Ausnahme
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 von KI vorgeschlagenen Korrekturen schnell aktualisieren.
Starten einer Debugsitzung
Während dasselbe Codebeispiel im Debugger angehalten wurde, drücken Sie F11, oder klicken Sie auf 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 die 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“.
Wählen Sie die Schaltfläche Vorschau aus.
Visual Studio zeigt eine Codevorschau mit der vorgeschlagenen Korrektur an.
Überprüfen Sie die vorgeschlagene Korrektur, und wählen Sie Annehmen aus, um den Codevorschlag anzuwenden.
Starten Sie den Debugger neu.
Diesmal tritt keine Ausnahme auf. Dieses Problem wurde behoben.
Abrufen von KI-Unterstützung bei bedingten Breakpoints und Ablaufverfolgungspunkten
Copilot bietet Ihnen Vorschläge für bedingte Breakpoints und Ablaufverfolgungspunkte, die für Ihren Code spezifisch sind.
In diesem Beispiel zeigen wir KI-Vorschläge für einen bedingten Breakpoint an. Bei Ablaufverfolgungspunkten funktioniert die KI-Unterstützung auf die gleiche Weise.
Entfernen Sie den aktuellen Breakpoint, indem Sie darauf klicken oder mit der rechten Maustaste 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 Breakpoint 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 einen aus, z. B.
item == "John"
. Bearbeiten Sie den Vorschlag so, dass der NameFred
lautet.Um den bedingten Ausdruck zu testen:
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ConsoleApp_Copilot und wählen Sie Eigenschaften aus.
Wählen Sie Debuggen>Allgemein>Öffnen der Benutzeroberfläche von Debugstartprofilen aus.
Geben Sie im Befehlszeilenargument-Feld ein
5 Fred Joe
ein, und zwar in drei separaten Zeilen.Starten Sie den Debugger neu.
Wenn der Debugger am Breakpoint pausiert, prüfen Sie den Wert von
item
und stellen Sie sicher, dass der aktuelle WertFred
ist.
Abrufen von KI-Unterstützung in der tabellarischen Visualisierung von IEnumerable
Informationen zur KI-Unterstützung für die tabellarische Visualisierung von IEnumerable finden Sie unter "Ändern des Visualisierungsausdrucks".
Anfordern von KI-Unterstützung für automatische Erkenntnisse
Zusätzlich zur interaktiven Debugging-Unterstützung bietet Copilot detaillierte Informationen in den automatischen Erkenntnissen zur CPU-Auslastung. Sie erhalten Informationen zu einer Reihe von spezifischen Leistungserkenntnissen. Stellen Sie mit Copilot Fragen zu Funktionen auf den identifizierten langsamsten Pfaden in Ihrem Code, die Ihnen helfen können, effizienteren oder kostengünstigeren Code zu erstellen.
Die Schaltfläche Copilot fragen wird auch dann angezeigt, wenn keine spezifischen Leistungserkenntnisse identifiziert werden. Wählen Sie "Copilot fragen aus, um von Copilot zu lernen und Fragen zu stellen.