Durchschreiten des Quelltextes Überwachte Ausdrücke

Fehlerbehandlung - Die Elemente des Debuggers www.delphi-treff.de 145 StartHaltepunkt hinzufügenAdresshaltepunkt. Interessant sind solche Adresshaltepunkte dann, wenn wir Fehlermeldungen erhalten, wo konstant auf eine bestimmte Speicheradresse zugegriffen werden soll.

5.2.2. Durchschreiten des Quelltextes

Die Haltepunkte allein nutzen relativ wenig. Wir müssen uns natürlich auch, nachdem wir die Ausführung angehalten haben, durch den Quelltext bewegen können. Steuern können wir das im Menüpunkt Start oder durch die Tasten F4, F7, F8 und F9. F9 zeigt das bekannte Verhalten, die Anwendung läuft durch bzw. hält bei anfallenden Eingaben oder Haltepunkten. Mit F4 läuft das Programm bis zur aktuellen Cursor-Position, wiederum unter Berücksichtigung der angesprochenen Einschränkungen. Für uns interessanter ist das Verhalten bei F7 und F8. Mit F8 wird nur die nächste auszuführende Zeile komplett abgearbeitet, bei F7 wird dabei in eine etwaige Routine verzweigt, sofern der Quelltext davon vorliegt. Wir können das unterschiedliche Verhalten, mit dem Haltepunkt in Zeile 28 beleuchten. Mit dem Starten des Programms durch F9 gelangen wir zum Haltepunkt. Mit F9 können wir nun den gesamten Schleifendurchgang, das Prüfen und Schreiben, auf einmal erledigen und erreichen so wieder direkt den Haltepunkt. F8 steuert jede Zeile einzeln an und F7 verzweigt gar in die Funktion IstPrimzahl hinein. Da wir hier schrittweise arbeiten, müssen wir auch jeden Schritt, per Tastendruck, auslösen. Die Abarbeitung endet mit Ende des Programms ode de D ü ke o “t g+F z . de Kli k auf das I o o „P og a a e he i de “ olleiste zu Fehlersuche.

5.2.3. Überwachte Ausdrücke

Nachdem wir nun wissen, wie die Programmausführung gezielt angehalten und auch wieder fortgesetzt werden kann, widmen wir uns dem Inspizieren der Daten. Wir können durch den Menüpunkt StartAusdruck hinzufügen oder durch Strg+F5 der Liste überwachter Ausdrücke einen weiteren hinzufügen – je nach Cursor- Position und Markierungen im Quelltext auch ohne weitere Eingabe und Bestätigung. Die Verwaltung dieser Ausdrücke findet im linken Bereich des Debug-Layouts statt. Mit unserem Haltepunkt in Zeile 28 starten wir nun das Programm durch F9. Mittels Strg+F5, Eingabe von i als Ausdruck und Bestätigung, fügen wir die Variable i den überwachten Ausdrücken hinzu. Fehlerbehandlung - Die Elemente des Debuggers www.delphi-treff.de 146 ude a kie e i de Ausd u k „AP uefzahl od teile aus de Fu ktio IstP i zahl i eile u d übernehmen ihn durch Strg+F5 direkt in die Liste. In der Liste der überwachten Ausdrücke sehen wir nun die beiden Ausdrücke und erkennen auch direkt eine Problemstellung – den Gültigkeitsbereich. Da wir uns momentan im Hauptprogramm befinden, kann die Restwertdivision, mit ihren lokalen Variablen, nicht ausgewertet werden. Erst wenn wir mit F7 in die Funktion hineinspringen, werden die lokalen Variablen gültig und dadurch der Ausdruck auswertbar. Wir können außerdem Funktionsergebnisse auswerten und darstellen lassen. Dazu markieren wir den Aufruf „IstP i zahl i i eile u d e gä ze die Liste ü e a hte Ausd ü ke durch Strg-F5. Gehen wir jetzt schrittweise durch den Text, dann ist der Wert jedoch nicht verfügbar. Mit einem Rechtsklick auf den entsprechenden Listeneintrag und der Auswahl von Ausdruck bearbeiten bzw. durch Strg-E bei selektiertem Listeneintrag, erhalten wir seine Eigenschaften. Dort ändern wir die Standardeinstellungen und aktivieren „“eite effekte u d Fu ktio sauf ufe zulasse . A jetzt i d die Fu ktio , ei jede “ h itt i Quellte t ausgewertet und dargestellt, sofern dies möglich ist. Dabei sollte jedoch beachtet werden, dass das Ergebnis des Programmlaufs durch die ständige Auswertung der Funktion verfälscht werden kann. Nämlich dann, wenn durch den Aufruf der Funktion Daten bleibend verändert werden. Über den Menüpunkt StartAuswertenÄndern bzw. durch Strg+F7 ist es uns zusätzlich möglich, den Wert von Ausdrücken zu ändern und somit deren Ergebnis zu manipulieren. Fehlerbehandlung - Die Elemente des Debuggers www.delphi-treff.de 147 Die Aufnahme eines Ausdrucks geschieht identisch zu Strg+F5. Die Schaltfläche Auswerten erzeugt dabei im Anzeigefeld Ergebnis den aktuellen Rückgabewert, welchen wir im darunterliegenden Feld editieren können. Durch die Schaltfläche Ändern wird der Wert aktualisiert und hat damit Bestand bis zur nächsten Auswertung des Ausdrucks oder bis zum Verlust seines Gültigkeitsbereichs. Die Anzeige selbst wird beim Bewegen durch den Quelltext nicht aktualisiert, sondern muss durch die Schaltfläche Auswerten jeweils angestoßen werden. Anders als die Liste überwachter Ausdrücke, eignet sich also dieses Fenster nur zum punktuellen Auswerten bzw. Ändern von Ausdrücken und nicht zur dauerhaften Überwachung. Durch die Schaltfläche Überwachen können wir den aktuellen Ausdruck der Liste überwachter Ausdrücke hinzufügen.

5.2.4. Aufruf-Stack