Ein Debugger hält ein laufendes Programm an einer gewählten Stelle an und zeigt, welche Werte dort gerade gelten.
- Debugger
Ein Werkzeug, das die Ausführung eines Programms an gewählten Stellen anhält und den Zustand aller Werte sichtbar macht.
Beispiel: „Mit dem Debugger war in zwei Minuten klar, dass der Wert schon beim Eintritt in die Funktion leer war.“Herkunft: englisch bug, der Käfer, für einen Programmfehler. Die Geschichte vom Nachtfalter in einem Relais des Harvard Mark II ist belegt und stammt von 1947; das Wort bug für eine technische Störung ist jedoch älter und findet sich schon bei Edison.
Was er kann, was Ausgaben nicht können
Ein Haltepunkt unterbricht das Programm an einer Zeile. Dort lässt sich jeder Wert ansehen, auch solche, an die niemand gedacht hat, und von dort geht es Zeile für Zeile weiter oder in eine Funktion hinein.
Der übliche Behelf sind Ausgaben im Code. Sie zeigen nur, wonach vorher gefragt wurde, müssen hinterher wieder entfernt werden und landen gelegentlich im Produktivsystem. Der Debugger braucht dafür keine einzige Änderung am Code.
Der bedingte Haltepunkt
Ein Haltepunkt lässt sich an eine Bedingung knüpfen. In einer Schleife über zehntausend Datensätze hält das Programm dann nur bei dem einen, der Probleme macht.
Das ist der Punkt, an dem der Debugger jede Ausgabe im Code schlägt. Wer einmal einen Fehler so gefunden hat, richtet ihn beim nächsten Projekt gleich zu Beginn ein.
Im Webumfeld
Für JavaScript bringt jeder Browser einen Debugger in den Entwicklerwerkzeugen mit, ohne Einrichtung. Für PHP übernimmt das Xdebug, das in Herd bereitsteht und sich mit dem Editor verbindet.
Der Aufwand dafür ist einmalig und nach dem ersten Fehler wieder eingespielt, den man damit in Minuten statt in Stunden findet.