Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel erfahren Sie, wie Sie mithilfe von GitHub Copilot effizienter debuggen. Copilot können Codekorrekturen zusammen mit eingehenden Analysen und Erläuterungen zur Funktionsweise von Code 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 zum Beispiel bei Ausnahmen, und alle in KI-unterstützten Szenarien zum Debuggen beschriebenen. Suchen Sie in den meisten dieser Szenarien nach dem Copilot fragen
oder der Analysieren mit Copilot-Schaltfläche. In diesen Szenarien kennt Copilot bereits den Kontext für Ihre Fragen.
Weitere Informationen zu GitHub Copilot Fertigstellungen in Visual Studio finden Sie unter About GitHub Copilot Completions in Visual Studio.
Voraussetzungen
Zum Loslegen benötigen Sie Folgendes:
Visual Studio 2022 version 17.8 oder höher
Mit einem GitHub-Konto bei Visual Studio anmelden und Zugriff auf Copilot erhalten.
** Sie können GitHub Copilot kostenlos verwenden. Registrieren Sie sich, und nutzen Sie KI, um schneller und effizienter zu programmieren.Hinweis
Wenn nach der Installation der Erweiterung Authentifizierungsprobleme auftreten, lesen Sie Fehlerbehebung bei Authentifizierungsproblemen mit GitHub Copilot Chat.
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 | Verknüpfung |
|---|---|
| Debuggeragent | Siehe Agentische Fehlerauflösung mit dem Debugger-Agent in diesem Artikel. End-to-End-agentengestützter Workflow, der Fehler reproduziert, Ihre App instrumentiert und Korrekturen mithilfe von Live-Laufzeitdaten überprüft. |
| Anrufstapelanalyse | Siehe Analysieren des Aufrufstapels mit Copilot. Erhalten Sie eine Ein-Klick-Analyse der Aktionen Ihres Threads, einschließlich asynchroner Flusserklärungen. |
| Ausnahmen | Siehe Debuggen Sie eine Ausnahme mit Copilot in diesem Artikel. Hilfe zu Ausnahmen umfasst Hilfe bei Deadlockerkennungsfehlern. |
| Variablen | Weitere Informationen finden Sie unter "KI-Unterstützung erhalten". |
| LINQ-Abfrageanalyse | Fahren Sie mit der Maus über LINQ-Abfragen während des Debuggens im Code-Editor, um den Rückgabewert zu sehen. Wählen Sie die Schaltfläche Analyze mit Copilot aus, um KI-Unterstützung zu erhalten. Siehe Anzeigen der Rückgabewerte von LINQ-Abfragen. |
| Datentipps | Weitere Informationen finden Sie unter KI-Unterstützung mit Datentipps erhalten. |
| Bedingte Haltepunkte und Ablaufverfolgungspunkte | Lesen Sie in diesem Artikel den Abschnitt Vorschläge für bedingte Haltepunkte und Ablaufverfolgungspunkte erhalten. |
| Schnelle Aktionen (Glühbirne) | Lesen Sie KI-Unterstützung mit schnellen Aktionen erhalten. |
| IEnumerable-Tabellenschnellansicht | Weitere Informationen finden Sie unter "KI-Unterstützung erhalten". |
| Inline-Rückgabewerte | Siehe Anzeigen von Rückgabewerten von Methodenaufrufen. |
| Inlinewerte | Siehe "Inlinewerte anzeigen". |
| Multithread-Debugging | Siehe KI-Unterstützung mit der Threads-Ansicht erhalten. |
| Komponententests | Siehe KI-Unterstützung zum Debuggen von Tests |
| Überprüfen von Ausnahmen mit Repositorykontext | Siehe KI-Unterstützung mit Repository-Kontext |
| Problembehandlung von Haltepunkten | Weitere Informationen finden Sie unter "KI-Unterstützung erhalten". |
| Feature oder Szenario | Verknüpfung |
|---|---|
| Anrufstapelanalyse | Siehe auch Aufrufstapel mit Copilot analysieren. Erhalten Sie eine Ein-Klick-Analyse der Aktionen Ihres Threads, einschließlich asynchroner Flusserklärungen. |
| Ausnahmen | Siehe Debuggen einer Ausnahme mit Copilot in diesem Artikel. Hilfe zu Ausnahmen umfasst Hilfe bei Deadlockerkennungsfehlern. |
| Variablen | Weitere Informationen finden Sie unter "KI-Unterstützung erhalten". |
| LINQ-Abfrageanalyse | Fahren Sie mit der Maus über LINQ-Abfragen während des Debuggens im Code-Editor, um den Rückgabewert zu sehen. Wählen Sie die Schaltfläche Analyze mit Copilot aus, um KI-Unterstützung zu erhalten. Siehe Anzeigen der Rückgabewerte von LINQ-Abfragen. |
| Datentipps | Weitere Informationen finden Sie unter KI-Unterstützung mit Datentipps erhalten. |
| Bedingte Haltepunkte und Ablaufverfolgungspunkte | Lesen Sie in diesem Artikel den Abschnitt Vorschläge für bedingte Haltepunkte und Ablaufverfolgungspunkte erhalten. |
| Schnelle Aktionen (Glühbirne) | Lesen Sie KI-Unterstützung mit schnellen Aktionen erhalten. |
| IEnumerable-Tabellenschnellansicht | Weitere Informationen finden Sie unter "KI-Unterstützung erhalten". |
| Inline-Rückgabewerte | Siehe Anzeigen von Rückgabewerten von Methodenaufrufen. |
| Inlinewerte | Siehe "Inlinewerte anzeigen". |
| Multithread-Debugging | Siehe KI-Unterstützung mit der Threads-Ansicht erhalten. |
| Komponententests | Siehe KI-Unterstützung zum Debuggen von Tests |
| Überprüfen von Ausnahmen mit Repositorykontext | Siehe KI-Unterstützung mit Repository-Kontext |
| Problembehandlung von Haltepunkten | Weitere Informationen finden Sie unter "KI-Unterstützung erhalten". |
In den meisten dieser Szenarien erhalten Sie gezielte Unterstützung, indem Sie die Copilot fragen
oder Analysieren mit Copilot-Schaltfläche verwenden. Copilot kennt 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 Haltepunkten und Verfolgungspunkten.
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 View > GitHub-Copilot Chat auswählen. Weitere Informationen finden Sie unter What is the GitHub Copilot Chat extension for 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 console in das Suchfeld ein, wählen Sie C# als Sprache aus, und wählen Sie dann Console App für .NET aus. Wählen Sie Weiter aus. Geben Sie einen Projektnamen wie ConsoleApp_Copilot ein, und wählen Sie Weiteraus.
Wählen Sie entweder das empfohlene Zielframework oder .NET 10 aus, und wählen Sie dann Create aus.
Wenn die Projektvorlage Console App für .NET nicht angezeigt wird, wechseln Sie zu Tools>Get Tools and Features, wodurch das Visual Studio Installer geöffnet wird. Wählen Sie die .NET Desktopentwicklung Workload und dann Modify aus.
Visual Studio erstellt das Konsolenprojekt, das im rechten Bereich in Projektmappen-Explorer 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 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 "Chat" aus, um die Inline-Chatansicht zu öffnen.
- Klicken Sie mit der rechten Maustaste in den Code, und wählen Sie Copilot fragen aus, um die Inlinechatansicht 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 erhält Copilot den Variablennamen und den Kontext, sodass Sie den Kontext nicht selbst im Chat bereitstellen 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 Enter drücken, stellt Copilot basierend auf ihrem Verständnis ihres Codes eine Antwort bereit. (Möglicherweise erhalten Sie eine andere Antwort als die hier gezeigten.)
Wenn Copilot einen vorgeschlagenen Fix für Ihren Code enthält, wird dieser angezeigt. Falls 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 bis zum Ende der Copilot Antwort, und wählen Sie die Nachverfolgungsfrage am Ende des Inlinechatfensters 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 Tab aus.
Wählen Sie Alt+Delete aus, damit wir weitere Features von Copilot im nächsten Abschnitt erlernen können.
Wenn Sie Enter drücken, stellt Copilot basierend auf ihrem Verständnis ihres Codes eine Antwort bereit. (Möglicherweise erhalten Sie eine andere Antwort als die hier gezeigten.)
Wenn Copilot einen vorgeschlagenen Fix für Ihren Code enthält, wird dieser angezeigt. Falls 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 bis zum Ende der Copilot Antwort, und wählen Sie die Nachverfolgungsfrage am Ende des Inlinechatfensters 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 dasselbe Codebeispiel im Debugger angehalten wurde, drücken Sie F11, oder klicken Sie auf Debuggen>Einzelschritt, um die aktuelle Anweisung auszuführen.
Eine
IndexOutOfRangeExceptiontritt 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 Analyze mit Copilot aus.
Wenn das Fenster noch nicht geöffnet ist, wird das Copilot Chat-Fenster angezeigt und stellt eine Bewertung des Fehlers und den Grund für den Fehler bereit. In diesem Beispiel identifiziert Copilot eine vorgeschlagene Codekorrektur, eine Schaltfläche zum Kopieren von Code und eine Preview-Schaltfläche für die Codekorrektur.
Wenn Sie Fragen zur Ausnahme haben, stellen Sie sie im Textfeld Copilot fragen.
Teilen Sie im Copilot-Chatfenster Copilot mit, dass sie den Fehler verhindern soll.
Wenn Copilot einen Fix im Chatfenster vorschlägt, wählen Sie Apply aus.
Überprüfen Sie die vorgeschlagene Korrektur und wählen Sie Tab, um den Codevorschlag anzuwenden.
Starten Sie den Debugger neu.
Diesmal tritt keine Ausnahme auf. Es wurde behoben!
Wenn die Anwendung bei einer Ausnahme angehalten wurde, wählen Sie die Schaltfläche Copilot fragen aus.
Wenn das Fenster noch nicht geöffnet ist, wird das Copilot Chat-Fenster angezeigt und stellt eine Bewertung des Fehlers und den Grund für den Fehler bereit. In diesem Beispiel identifiziert Copilot eine vorgeschlagene Codekorrektur, eine Schaltfläche zum Kopieren von Code und eine Preview-Schaltfläche 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 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!
Agentische Fehlerauflösung mit dem Debugger-Agent
Der Debugger-Agent stellt einen End-to-End-Agent-Workflow bereit, der Fehler anhand des realen Laufzeitverhaltens überprüft, anstatt sich auf statische Analysen zu verlassen. Die Erfahrung führt Sie durch eine vollständige agentische Schleife: Verstehen und Reproduzieren des Problems, Instrumentieren der Anwendung, Isolieren der Ursache und Validieren der Korrektur durch Liveausführung.
Sie können mit einem Problem in GitHub oder Azure DevOps beginnen oder den Fehler in natürlicher Sprache beschreiben. Der Debugger-Agent ordnet das Problem Ihrem lokalen Quellcode zu und führt Sie durch die Lösung. Sie können während des Debuggingprozesses mit dem Agent interagieren, um mehr Eingaben bereitzustellen, Ihre Theorie zu besprechen oder den Fix in Echtzeit zu verfeinern.
So verwenden Sie den Debugger-Agent:
- Öffnen Sie das fenster Copilot Chat (View > GitHub Copilot Chat).
- Wählen Sie "Debugger " in der Dropdownliste "Modus" in der unteren linken Ecke des Chatfensters aus.
- Stellen Sie einen GitHub oder Azure DevOps Problemlink bereit, oder beschreiben Sie den Fehler in natürlicher Sprache.
Der Debugger-Agent führt die folgenden Schritte durch:
- Kontexteinfügung – Verbindet das Problem oder die Fehlerbeschreibung mit Ihrem lokalen Quellcode.
- Autonomer Reproduzer – Analysiert den Fehler und erstellt bei fehlenden Reproduktionsschritten ein minimales Szenario, um den Fehler auszulösen.
- Hypothesen und Instrumentierung – Generiert Fehlerhypothesen und instrumentiert Ihre App mit Tracepoints und bedingten Haltepunkten, um den Laufzeitzustand zu erfassen.
- Laufzeitüberprüfung : Führt die Debugsitzung aus und analysiert Live-Telemetrie, um die Ursache zu isolieren.
- Gezielte Korrektur – Schlägt eine präzise Korrektur am genauen Fehlerpunkt vor, anstatt eine umfassende Umgestaltung.
- Endgültige menschliche Überprüfung – Sie führen das Szenario erneut aus und bestätigen den Fix in der Liveumgebung zusammen mit dem Agent.
Wenn Sie sich im Agentmodus im Chat befinden, können Sie auch mithilfe der Chateingabe zum Debugger-Agent @debugger wechseln. Weitere Informationen zum Debugger-Agent und anderen integrierten Agents finden Sie unter Use built-in and custom agents with GitHub Copilot.
Erhalten von Vorschlägen für bedingte Haltepunkte und Ablaufverfolgungspunkte
Copilot bietet Ihnen Vorschläge für konditionale Haltepunkte und tracepoints, die für Ihren Code spezifisch sind.
In diesem Beispiel zeigen wir KI-Vorschläge für einen bedingten Haltepunkt an. Bei Tracepoints 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 mit der Bearbeitung von Vorschlägen beginnt.
Wenn die Vorschläge angezeigt werden, wählen Sie einen aus, z. B.
item == "Test". Bearbeiten Sie den Vorschlag so, dass der NameFredist.
Wenn die Vorschläge angezeigt werden, wählen Sie eins wie
item == "John"aus. Bearbeiten Sie den Vorschlag so, dass der NameFredist.
So testen Sie den bedingten Ausdruck:
Klicken Sie mit der rechten Maustaste auf das projekt ConsoleApp_Copilot in Projektmappen-Explorer, und wählen Sie Properties aus.
Wählen Sie Debuggen>Allgemein>Öffnen der Benutzeroberfläche von Debugstartprofilen aus.
Geben Sie im Feld Befehlszeilenargumente
5 Fred Joein drei separate Zeilen ein.
Starten Sie den Debugger neu.
Wenn der Debugger am Haltepunkt anhält, überprüfen Sie den Wert von
itemund stellen Sie sicher, dass der aktuelle WertFredist.