Der Epina Delphi-Kurs bietet Ihnen eine allgemeine Einführung in das Programmieren mit Delphi/Pascal. Mit vielen ausgearbeiteten Beispielen können Sie direkt in die Delphi-Programmierung einsteigen. Mehr dazu finden Sie hier....

Debugger

Fehlersuche in Programmen gehört zum alltäglichen Brot beim Programmieren und kostet viel Zeit. Da es bei compilierten Programmen a priori keine Möglichkeit gibt, das Programm zur Laufzeit zu verfolgen und ihm quasi bei der Ausführung zuzusehen, müssen andere Wege beschritten werden. Eine Möglichkeit ist der Einbau von Kontrollstatements, die zur Fehlersuche Informationen über den Zustand des Programms in einem File speichern oder sonst irgendwie zur Verfügung stellen. Diese mühselige Art Fehler zu finden, wurde aber schon in den 1980er Jahren durch sogenannte Debugger abgelöst.

Debugger sind Programme, die es gestatten, ein Programm zu jedem Zeitpunkt anzuhalten und den Zustand aller Variablen zu überprüfen. Zusätzlich kann man im Einzelschrittmodus auch Zeile für Zeile des Programms abarbeiten.

Hinweis: Debugger dienen nicht nur zur Fehlersuche, sondern auch zur Verifizierung von Algorithmen. Man kann mit einem Debugger sehr bequem die Abarbeitung von Algorithmen verfolgen und dadurch eventuelle Designfehler frühzeitig erkennen und vermeiden.

Grundsätzlich gibt es zwei Fehlerarten:

  • Compiletime-Error (Fehler syntaktischer Natur): diese werden vom Compiler bereits beim Übersetzen angezeigt
  • Runtime-Error (Laufzeitfehler): Fehler, die sich erst zur Laufzeit auswirken.

Die zweite Art von Fehlern kann mit einem Debugger untersucht werden.

Delphi enthält einen integrierten Debugger, der alle wichtigen Features eines guten Debuggers anbietet. Von den vielen Möglichkeiten seien nur die wichtigsten und am häufigsten gebrauchten Vorgangsweisen beschrieben. Grundsätzlich geht man beim Debuggen in den meisten Fällen folgendermaßen vor: man setzt zuerst im Bereich des verdächtigen Codes einen "Breakpoint", indem man auf die betreffende Zeile klickt und dann Ctrl-F8 drückt. Der Breakpoint dient zur Unterbrechung des Programms. Kommt das Programm am Breakpoint vorbei, wird es angehalten bevor die markierte Zeile ausgeführt wird.

Ab dem Augenblick, ab dem das Programm angehalten ist, kann man nun mit Hilfe des Debuggers z.B. die Werte der Variablen überprüfen oder den Zustand der CPU-Register einsehen, etc. Um den Inhalt einer Variable zu sehen, halten Sie die Maus im Code-Editor über den Namen der Variablen. Nach einigen 100 ms erscheint dann ein kleines Fenster indem der Wert angezeigt wird. Alternativ dazu können Sie den Wert der Variablen auch dauernd anzeigen (im "Watches"-Fenster), indem Sie auf die Variable klicken und dann Ctrl-F7 drücken.

Sobald das Programm einmal angehalten ist, können Sie mit F8 die einzelnen Programmzeilen schrittweise ausführen und dabei die beteiligten Variablen und den Programmfluss selber überprüfen. Um das Programm wieder normal weiter laufen zu lassen drücken Sie einfach F9.

Manchmal ist es einfacher keinen Breakpoint zu setzen, sondern das Programm bis zu einer bestimmten Stelle weiter laufen zu lassen. Um das zu erreichen klicken Sie auf die betreffende Zeile und drücken F4.

Breakpoints können mit einigen Parametern eingestellt werden (z.B. wie oft der Breakpoint exekutiert werden soll bevor das Programm tatsächlich angehalten werden soll). Diese Einstellung können Sie machen, indem Sie mit der rechten Maustaste auf den roten Knopf am linken Rand des Editors klicken und "Breakpoint Properties" auswählen.

 

Beispiel: Das Beispielprogramm No.5 "Debug" enthält einen absichtlich eingebauten Fehler. Eigentlich sollte das Programm die Zahlen von 1 bis 100 und deren 3. Potenz in einer Liste ausgeben. Drückt man aber den Knopf "Start", der die Ausgabe der 100 Zahlen startet, passiert entweder gar nichts oder es werden sehr viele Zahlen ausgegeben.

Benützen Sie den Debugger um den Fehler zu finden.

Last Update: 2008-09-09