3.4 Logische Fehler und Debugging
Logische Fehler treten auf, wenn eine Anwendung zwar ohne Syntaxfehler übersetzt und ohne Laufzeitfehler ausgeführt wird, aber nicht das geplante Ergebnis liefert. Dies liegt daran, dass die Programmlogik falsch aufgebaut wurde.
Die Ursache logischer Fehler zu finden, ist oft schwierig und kann nur durch intensives Testen und Analysieren der Abläufe und Ergebnisse durchgeführt werden. Visual Basic stellt im Zusammenhang mit dem Debugging einige wertvolle Hilfen zur Verfügung.
3.4.1 Einzelschrittverfahren
Sie können ein Programm im Einzelschrittverfahren ablaufen lassen, um sich dann bei jedem einzelnen Schritt die aktuellen Inhalte von Variablen und Steuerelementen anzuschauen. Dabei beginnen Sie mit dem Menüpunkt Debuggen • Einzelschritt (Funktionstaste ).
Als Beispiel dient wiederum das Programm im Projekt Laufzeitfehler zur Division zweier Zahlen. Nach dem Start des Einzelschrittverfahrens startet die Anwendung zunächst normal und Sie können zwei Zahlen (hier 12 und 3) eingeben.
Beim Betätigen des Buttons wird nun allerdings die Ereignisprozedur angezeigt: Ein gelber Pfeil vor einer gelb markierten Anweisung kennzeichnet den Punkt, an dem das Programm gerade angehalten wurde und auf die Reaktion des Entwicklers wartet.
Nach zwei weiteren Einzelschritten (Funktionstaste ) steht das Programm auf der Zeile y = txtEingabe2.Text, siehe Abbildung 3.7.
Abbildung 3.7 Debuggen
Platzieren Sie den Cursor über einer Variablen oder einer Steuerelement-Eigenschaft (z. B. über der Variablen x), so sehen Sie den aktuellen Wert (hier der Wert 12 für x). Sie können auch erkennen, dass die Variable y noch den Wert 0 hat, da die aktuell markierte Anweisung noch nicht ausgeführt wurde.
Bereits nach dem nächsten Einzelschritt hat die Variable y den Wert 3. Nach Durchführung aller Einzelschritte erscheint das Ergebnis des Programms wie gewohnt in der Anwendung.
Dieses einfache Beispiel zeigt, dass Sie mit dem Einzelschrittverfahren bereits den Ablauf eines Programms stückweise verfolgen können und so den Ursprung eines logischen Fehlers leichter lokalisieren.
3.4.2 Haltepunkte
Dauert das Einzelschrittverfahren bei einem bestimmten Programm zu lange, können Sie auch mit Haltepunkten (Breakpoints) arbeiten. Das Programm durchläuft dann alle Anweisungen bis zu einem solchen Haltepunkt. Sie setzen einen Haltepunkt in die Nähe der Stelle, an der Sie den Ursprung eines Fehlers vermuten.
Das Setzen eines Haltepunkts geschieht mithilfe des Menüpunkts Debuggen • Haltepunkt umschalten (Funktionstaste ). Es wird ein Haltepunkt in der Zeile gesetzt, in der sich der Cursor befindet. Im Beispiel bietet sich hierfür die Zeile an, in der z = x / y berechnet wird, siehe Abbildung 3.8.
Abbildung 3.8 Haltepunkt gesetzt
Das Programm wird nun über die Funktionstaste gestartet. Es unterbricht vor der Ausführung der Zeile mit dem Haltepunkt. Ab diesem Punkt können Sie das Programm wiederum im Einzelschrittverfahren ablaufen lassen und die Werte der Variablen wie oben beschrieben kontrollieren.
Es können auch mehrere Haltepunkte gesetzt werden. Ein Haltepunkt wird wieder entfernt, indem Sie den Cursor in die betreffende Zeile setzen und wiederum die Funktionstaste betätigen.
3.4.3 Überwachungsfenster
Das Überwachungsfenster bietet während des Debuggens eine weitere komfortable Möglichkeit der Variablenkontrolle. Es kann während des Debuggens über den Menüpunkt Debuggen • Fenster • überwachen eingeblendet werden.
Hier haben Sie die Möglichkeit, die Namen von Variablen oder von Steuerelement-Eigenschaften in der Spalte Name einzugeben. In der Spalte Wert erscheint dann jeweils der aktuelle Wert beim Ablauf der Einzelschritte, siehe Abbildung 3.9. Auf diese Weise lässt sich die Entwicklung mehrerer Werte gleichzeitig komfortabel verfolgen.
Abbildung 3.9 Überwachung von Werten
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.