# Lernen zum Debuggen mit GitHub Copilot

Identifiziere und behebe Fehler in deinem Code, indem du GitHub Copilot um Hilfe bittest.

Das Finden und Beheben von Fehlern im Code kann frustrierend sein, besonders wenn man ein neuer Entwickler ist. Glücklicherweise können Tools wie GitHub Copilot Fehler schnell identifizieren und squashen, sodass du dich auf kreativere, interessantere Arbeit konzentrieren kannst.

## Voraussetzungen

In den Beispielen in diesem Artikel wird davon ausgegangen, dass Sie GitHub Copilot verwenden, um ein Python-Projekt in Visual Studio Code (VS Code) zu debuggen. Um den Beispielen zu folgen, benötigen Sie Folgendes:

* Schließen Sie die Einrichtung von [ Visual Studio Code mit Copilot](https://code.visualstudio.com/docs/copilot/setup-simplified) in der Visual Studio Code-Dokumentation ab.
* [Download Python](https://www.python.org/downloads/).
* Installieren Sie die [Python-Erweiterung für Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=ms-python.python).

## Lernfortschritte beim Debuggen durch Beispiele

Es gibt zwei Hauptszenarios, wenn du versuchst, Code mit Fehlern auszuführen:

* Dein Code wird beendet, bevor die Ausführung beendet wird, und du erhältst eine Fehlermeldung.
* Dein Code wird ohne Fehler ausgeführt, aber die Ausgabe unterscheidet sich von dem, was du erwartet hast.

Glücklicherweise kann Copilot in beiden Fällen beim Debuggen von Code helfen. Nutze die folgenden Beispiele, um zu erfahren, wie dies funktioniert.

### Debuggen eines Fehlers mit GitHub Copilot

Wenn du Code mit Fehlern ausführst, wird häufig eine Fehlermeldung angezeigt. Die Meldung informiert dich über die Datei und Zeile, in der der Fehler aufgetreten ist. Zudem wird kurz beschrieben, was nicht funktioniert hat. Fehlermeldungen können jedoch verwirrend sein. Um den Fehler vollständig zu verstehen und zu beheben, kannst du Copilot um Hilfe bitten.

Teste dies mit einem Beispielrepository: [`new2code/debug-with-copilot`](https://github.com/new2code/debug-with-copilot).

#### Klonen des Beispielrepositorys

Zunächst müssen wir eine lokale Kopie des Repositorys erstellen:

1. [Beginne mit dem Klonen des Repositorys new2code/debug-with-copilot](vscode://vscode.git/clone?url=https://github.com/new2code/debug-with-copilot) in VS Code. <!-- markdownlint-disable-line GHD003 -->
2. Wähle einen Speicherort aus, um das Repository auf deinem Computer zu speichern, und klicke dann auf **Select as Repository Destination**.
3. Öffne das Repository, wenn du dazu aufgefordert wirst.

#### fehlerhafte Datei ausführen

Führe jetzt die Datei [`bugged_dice_battle.py`](https://github.com/new2code/debug-with-copilot/blob/main/bugged_dice_battle.py) aus. Dieses Programm simuliert ein Würfelspiel zwischen zwei Personen.

1. Öffne in VS Code die Datei `bugged_dice_battle.py` und überprüfe sie.

2. Öffnen Sie die Befehlspalette, indem Sie <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Windows) drücken/Linux) oder <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>P</kbd> (Mac).

3. Geben Sie `Terminal: Create New Terminal` ein, und drücken Sie die <kbd>EINGABETASTE</kbd>.

4. Füge auf der Registerkarte „Terminal“ den folgenden Befehl ein.

   Windows:

   ```shell copy
   py bugged_dice_battle.py
   ```

   Mac oder Linux:

   ```shell copy
   python bugged_dice_battle.py
   ```

5. Drücke die <kbd>EINGABETASTE</kbd>, um das Programm auszuführen.

Leider wird im Terminal ein Fehlertext angezeigt, der mit der folgenden Meldung endet:

> TypeError: kann nur str (nicht "int") zu str verketten

#### Debuggen der Datei

Um zu verstehen, was dieser Fehler bedeutet, [öffnen Sie Copilot-Chat in VS Code](vscode://GitHub.Copilot-Chat?ref_product=copilot\&ref_type=engagement\&ref_style=text), dann fügen Sie die folgende Eingabeaufforderung ein und senden Sie sie. <!-- markdownlint-disable-line GHD003 -->

```text copy
Explain in depth why my code produces the following error and how I can fix it:

TypeError: can only concatenate str (not "int") to str
```

Copilot antwortet, dass der Fehler auftritt, weil du versuchst, die Integer `die_1` und `die_2` mit Zeichenfolgen zu verketten, obwohl nur die Verkettung von Zeichenfolgen mit Zeichenfolgen möglich ist.

Anschließend wird ebenfalls eine **aktualisierte Version des Codes** bereitgestellt, in der der Fehler behoben wird, indem die `str()`-Funktion zum Konvertieren der Integer in Zeichenfolgen vor der Verkettung verwendet wird. Übe den letzten Schritt des Debuggens, indem du den Vorschlag von Copilot auf die Datei anwendest.

### Debuggen einer falschen Ausgabe mit GitHub Copilot

Manchmal wird fehlerhafter Code ausgeführt, ohne Fehlermeldung auszugeben, während die Ausgabe eindeutig falsch ist. In diesem Fall kann das Debuggen schwieriger sein, da VS Code dir nicht die Stelle des Fehlers nennen oder eine Fehlerbeschreibung bereitstellen kann.

Für diese „unsichtbaren“ Fehler ist Copilot besonders nützlich. Lass uns einige praktische Erfahrungen mit der anderen Datei in unserem Beispielrepository sammeln: `bugged_factorial_finder.py`. Es ist ein Python Programm, das eine Factorial berechnen soll.

#### fehlerhafte Datei ausführen

Führe zunächst das Programm aus, um das fehlerhafte Ergebnis zu sehen.

1. Öffne und überprüfe die Datei `bugged_factorial_finder.py`.

2. Füge im zuvor erstellten Terminal den folgenden Befehl ein.
   Windows:

   ```shell copy
   py bugged_factorial_finder.py
   ```

   Mac oder Linux:

   ```shell copy
   python bugged_factorial_finder.py
   ```

3. Drücke die <kbd>EINGABETASTE</kbd>, um das Programm auszuführen.

Leider funktioniert der Code nicht wie erwartet. Der Code soll `720` zurückgeben (richtiger Wert für die Fakultät von 6), aber die Ausgabe ist viel höher.

#### Debuggen der Datei

Um zu verstehen, was schiefgelaufen ist, [öffne Copilot-Chat](vscode://GitHub.Copilot-Chat?ref_product=copilot\&ref_type=engagement\&ref_style=text) und sende den folgenden Prompt: <!-- markdownlint-disable-line GHD003 -->

```text copy
Why is the output of this code so much higher than expected? Please explain in depth and suggest a solution.
```

Copilot weist darauf hin, dass du aufgrund der Verwendung des `*=`-Operators tatsächlich `factorial` mit `i`**und**`factorial` multipliziert hast. Anders ausgedrückt: Du multiplizierst zusätzlich mit `factorial` für jede Iteration der Schleife.

Um diesen Fehler zu beheben, schlägt Copilot Code vor, in dem das zusätzliche `factorial`-Element aus der Formel entfernt wird bzw. in dem der `*=`-Operator in `=` geändert wird. Nimm jetzt diese Änderung vor!

## Debuggen deines eigenen Projekts

Nachdem du jetzt das Debuggen einiger einfacher Programme mithilfe von Copilot trainiert hast, kannst du dieselben Methodiken verwenden, um Fehler in deiner eigenen Arbeit zu suchen und zu beheben.

Übermittle den folgenden Prompt an Copilot, um beispielsweise eine Fehlermeldung zu debuggen, die von deinem Code generiert wurde:

```text copy
Explain in depth why my code produces the following error and how I can fix it:

YOUR-ERROR-MESSAGE
```

Wenn du eine falsche Ausgabe debuggst, kannst du Copilot fragen, warum die Ausgabe falsch ist und wie du diesen Fehler beheben kannst. Um optimale Ergebnisse zu erzielen, gib so viel Kontext wie möglich an, wie sich die Ausgabe von deinen Erwartungen unterscheidet.

Mit diesen Taktiken kannst du sofort damit beginnen, Fehler in deinem Projekt zu squashen.

## Nächste Schritte

Beim weiteren Programmieren werden wahrscheinlich bestimmte Problemszenarios und Fehler auftreten, die schwer zu debuggen sind. Eine Liste potenzieller Issues und Copilot-Chat-Beispielprompts für die Behebung findest du unter [Debuggen von Fehlern](/de/copilot/copilot-chat-cookbook/debugging-errors).