Was ist ein Debugger?

Abgeschlossen

Im Laufe Ihrer Tätigkeit als Entwickler gibt es immer diesen einen Moment, in dem Sie sich fragen:

Warum funktioniert mein Code nicht?

Diese Frage gehört zum ganz normalen Alltag eines Entwicklers. Die Kunst besteht darin, Fehler mit minimalem Zeitaufwand und möglichst wenig Frust zu finden und zu beseitigen. Wenn in einem Programm ein Fehler auftritt, hat jeder in der Regel seine eigene Methode, mit diesem Problem umzugehen.

Sie selbst haben wahrscheinlich schon mehr als einen dieser Debuggingansätze ausprobiert:

  • Sie führen das Programm noch einmal aus, da es im Grunde genommen funktionieren sollte.
  • Sie erläutern das Problem einer fachfremden Person oder einem Gegenstand („Quietscheentchen-Debugging“).
  • Sie lesen den Code noch einmal.
  • Sie machen einen Spaziergang.
  • Fügen Sie Console.WriteLine("here")-Meldungen mehrmals in Ihren Code ein.

Diese Methoden führen zu mehr oder weniger gutem Erfolg. Es gibt aber eine Methode, die weithin als erfolgversprechender angesehen wird als andere: ein Debugger. Aber was genau ist ein Debugger?

Ein Debugger ist ein Softwaretool, mit dem Sie Ausführungsflow Ihres Programms mit einem analytischen Ansatz beobachten und steuern können. Das Entwurfsziel besteht darin, Sie bei der Suche nach der Grundursache eines Fehlers zu unterstützen und diesen folglich zu beheben. Hierzu können Sie Ihr Programm entweder in seinem eigenen Ausführungsprozess hosten oder als separaten Prozess ausführen, der wie im Fall von .NET an Ihr ausgeführtes Programm angefügt wird.

Debugger sind in verschiedenen Varianten verfügbar. Einige werden direkt über die Befehlszeile ausgeführt, während andere über eine grafische Benutzeroberfläche verfügen. In diesem Modul nutzen wir den integrierten grafischen Debugger von Visual Studio Code.

Gründe für die Verwendung eines Debuggers

Wenn Sie Ihren Code nicht über einen Debugger ausführen, haben Sie wahrscheinlich eine Vermutung, was in Ihrem Programm passiert. Der Hauptvorteil der Verwendung eines Debuggers besteht darin, dass Sie die Ausführung Ihres Programms überwachen können. Sie können die Programmausführung Codezeile für Codezeile nachverfolgen. Auf diese Weise können Sie verhindern, dass Sie mit Ihrer Vermutung falsch liegen.

Jeder Debugger verfügt über eigene Features. Die zwei wichtigsten, die in fast allen Debuggern verfügbar sind, lauten wie folgt:

  • Steuern der Programmausführung: Sie können das Programm anhalten und in Einzelschritten ausführen. So können Sie sehen, welcher Code ausgeführt wird und wie sich dieser auf den Zustand Ihres Programms auswirkt.
  • Beobachten Ihres Programmstatus: Sie können beispielsweise zu jedem beliebigen Zeitpunkt während der Codeausführung den Wert Ihrer Variablen und Funktionsparameter überprüfen.

Ein sicherer Umgang mit Debuggern ist eine oft vergessene, jedoch sehr wichtige Fähigkeit von Entwicklern. Dies macht Sie bei der Suche nach Fehlern in Ihrem Code effizienter und kann Ihnen helfen, schnell zu verstehen, wie ein Programm funktioniert.

Damit werden wir uns in der nächsten Lerneinheit beschäftigen.