Entwicklungsumgebung bis Delphi 7
Debugger
Beim Programmieren können drei verschiedene Arten von Fehlern auftreten:
- der Syntaxfehler, der bereits vom Compiler angemahnt wird und seine Arbeit behindert
- der Laufzeitfehler, der vom Compiler nicht bemerkt wird, beim Programmablauf in einer bestimmten Situation aber eine Fehlermeldung hervorruft
- der logische Fehler, der weder beim Kompilieren noch zur Laufzeit zu einer Fehlermeldung fehlt; allerdings tut das Programm nicht das, was sich der Programmierer gedacht hatte.
In der Reihenfolge steigt auch die Schwierigkeit, den Fehler zu entdecken. Bei einem Syntaxfehler wird die fehlerhafte Zeile vom Compiler normalerweise markiert und eine Meldung angezeigt, was denn vermutlich nicht stimmt.
Bei einem Programmabbruch zur Laufzeit wird häufig auch die fehlerhafte Zeile angezeigt, sofern das Programm aus der Delphi-IDE heraus gestartet worden ist. Aber das ist nicht immer der Fall.
Und logische Fehler zu finden, ist sowieso schwierig.
Bei der Suche nach den letzten beiden Fehlerarten hilft uns jedoch der integrierte Debugger. Wir können den Programmablauf an einer bestimmten Stelle im Quellcode anhalten und von da an schrittweise verfolgen, wohin die Programmausführung springt, welche Routinen durchlaufen werden, welche Werte Variablen haben usw.
Steuerung des Programmablaufs
Um den Programmablauf zu steuern, stellt das Menü „Start“ mehrere Funktionen zur Verfügung:
Start (F9)
Die Anwendung wird kompiliert und gestartet. Dabei werden nur Module kompiliert, die sich seit dem letzten Kompilieren geändert haben. Anschließend wird die Anwendung neu gelinkt. Werden Syntaxfehler gefunden, werden diese angezeigt und der Vorgang abgebrochen.
Gesamte Routine (F8)
Das Programm wird Zeile für Zeile ausgeführt. Prozeduren- und Funktionsaufrufe werden dabei in einem Schritt abgearbeitet. Sollen auch diese zeilenweise ausgeführt werden, muss stattdessen die Funktion „Einzelne Anweisung“ (F7) verwendet werden. Soll das Programm normal weiterlaufen, muss F9 gedrückt werden.
Einzelne Anweisung (F7)
Das Programm wird Zeile für Zeile ausgeführt. Bei Aufrufen von Prozeduren und Funktionen wird in diese verzweigt und auch diese zeilenweise abgearbeitet. Soll das Programm normal weiterlaufen, muss F9 gedrückt werden.
Nächste Quelltextzeile (Shift+F7)
Die Ausführung des Programms wird an der nächsten Quelltextzeile angehalten.
Zur Cursorposition gehen (F4)
Das Programm wird bis zu der Stelle normal ausgeführt, an der der Cursor im Code-Editor steht. Dann wird angehalten. Von dieser Stelle an kann dann zeilenweise vorgegangen werden (F7 oder F8) oder das Programm normal weiter ausgeführt werden (F9).
Ausführung bis Rückgabe (Shift+F8)
Das Programm wird solange normal ausgeführt, bis die aktuelle Funktion beendet ist.
Ausführungsposition anzeigen
Der Cursor wird im Code-Editor an der Stelle positioniert, die als nächstes ausgeführt wird.
Programm Pause
Der Programmablauf wird angehalten, und der Debugger setzt den Ausführungspunkt an die Stelle, die als nächstes ausgeführt wird. Von hier an kann mit F7 oder F8 zeilenweise gearbeitet oder mit F9 normal fortgefahren werden.
Programm zurücksetzen (Strg+F2)
Der Programmablauf wird abgebrochen und der Speicherplatz freigegeben. Unter Umständen werden hierbei jedoch nicht alle Windows-Ressourcen freigegeben, so dass Windows bei häufiger Verwendung dieser Funktion instabil werden kann.