9.3 Visual Studio Debugger
Die im letzten Abschnitt gezeigte Protokollierung ist sehr robust, erlaubt aber keinen Eingriff, wenn Sie aufgrund der Ausgabe einen Fehler entdecken und das Programm unterbrechen möchten. Diese Möglichkeit bietet ein Debugger. Das Visual Studio unterstützt das Debuggen sowohl von lokalen als auch von .NET-Anwendungen im Netzwerk. Ich beschränke mich hier auf den Test lokaler Anwendungen.
Die Unterbrechung einer Anwendung durch den Debugger kann drei Ursachen haben:
- Die Laufzeit der Anwendung erreicht einen Haltepunkt.
- Die Anwendung führt die Methode System.Diagnostics.Debugger.Break aus.
- Es tritt eine Ausnahme auf.
9.3.1 Debuggen im Haltemodus
Wie bereits in Abschnitt 2.3.2, »Start und Test«, dargestellt wurde, können Sie durch einen Klick in den grauen Bereich neben dem Quelltext einen Haltepunkt setzen, der als roter Punkt erscheint. Alternativ drücken Sie die Taste . Ein erneuter Klick oder Tastendruck entfernt den Haltepunkt. Der Debugger hält an der Stelle, bevor die Codezeile ausgeführt wurde.
Im Haltemodus können Sie Variablen untersuchen, ändern oder das Programm fortsetzen. Dabei werden Sie auch von mehreren Fenstern des Debuggers unterstützt: Überwachen, Lokal und Auto. Die Fortsetzung erfolgt über das Menü Debuggen, die gleichnamige Symbolleiste (gegebenenfalls über Menü Ansicht • Symbolleisten einblenden) und diverse Tastenkürzel:
- Einzelschritt.tifEinzelschritt: Der Programmcode wird Zeile für Zeile ausgeführt, auch in einer benutzerdefinierten Methode. Das Tastaturkürzel dafür ist , die Schaltfläche .
- Prozedurschritt.tifProzedurschritt: Der Programmcode wird weiterhin in Einzelschritten ausgeführt, aber beim Aufruf benutzerdefinierter Methoden wird nicht in diese verzweigt. Das Tastaturkürzel ist , die Schaltfläche .
- Ruecksprung.tifAusführen bis Rücksprung: Die aktuelle Methode wird ohne weiteren Halt ausgeführt und direkt nach dem Aufruf wieder angehalten. Das Tastaturkürzel ist + , die Schaltfläche .
QuickInfo-Fenster
Bewegen Sie im Haltemodus die Maus über eine Variable, wird deren Wert angezeigt, den Sie auch ändern können.
Bedingte Haltepunkte
Über das Kontextmenü eines Haltepunktes können Sie eine Bedingung festlegen, die erfüllt sein muss, damit der Programmlauf an diesem Punkt unterbrochen wird. In Abbildung 9.4 muss intVar kleiner als 8 sein.
Abbildung 9.4 Festlegen einer Haltepunktbedingung
Ist die Option Hat sich geändert markiert, prüft der Debugger, ob sich der Wert der Variablen seit dem letzten Erreichen des Haltepunktes geändert hat. Wenn ja, hält das Programm an.
Haltepunkt mit Trefferanzahl aktivieren
Additiv zur Bedingung können Sie über den Kontextmenüpunkt Trefferanzahl... fordern, dass der Haltepunkt außerdem eine bestimmte Anzahl Male erreicht wurde, zum Beispiel in einer Schleife (siehe Abbildung 9.5).
Abbildung 9.5 Festlegen der Trefferanzahl
Verwalten der Haltepunkte
Der Menüpunkt Debuggen • Fenster • Haltepunkte zeigt eine Liste aller Haltepunkte (siehe Abbildung 9.6). Mit dem Auswahlkästchen können Sie Haltepunkte deaktivieren, ohne seine Einstellungen zu verlieren, sodass er bei Reaktivierung noch alle Bedingungen kennt. Deaktivierte Haltepunkte werden durch einen nicht ausgefüllten Punkt markiert, die Existenz von Bedingungen durch ein weißes Pluszeichen.
Abbildung 9.6 Liste aller Haltepunkte
9.3.2 Fenster zum Zugriff auf Variablen
Visual Studio bietet mehrere Fenster zur Untersuchung und Änderung von Variablenwerten. Jedes der Fenster kann über das Menü Debuggen • Fenster oder das Kontextmenü des Codeeditors geöffnet werden.
Direktfenster
In diesem Fenster haben Sie im Wesentlichen drei Möglichkeiten:
- Variablenwert ausgeben: ?Variable
- Variablenwert zuweisen: Variable = Wert
- Methode ausführen (darf Ausnahmen auslösen): Methode(...)
Jede der Eingaben werten Sie durch Druck auf die Taste aus.
Auto
Das Auto-Fenster zeigt alle Variablen der Codezeile an, in der sich der Haltemodus aktuell befindet, sowie alle Variablen der drei vorausgehenden Codezeilen. Angezeigt werden neben dem Namen der Inhalt und der Datentyp. Durch einen Doppelklick gelangen Sie in den Editiermodus, in dem Sie Variablenwerte ändern können.
Lokal
Dieses Fenster enthält alle Variablen mit Namen, Wert und Typ, die in der aktuellen Methode definiert sind. Variablen, die sich zwar im Gültigkeitsbereich einer Methode befinden, aber außerhalb deklariert sind, werden nicht vom Lokal-Fenster erfasst.
Überwachen
In diesem Fenster geben Sie Variablen an, die vom Debugger überwacht werden sollen. Neue Variablen fügen Sie über den Kontextmenüpunkt Überwachung hinzufügen der Variablen hinzu oder tragen sie direkt im Fenster ein. Durch einen Doppelklick gelangen Sie in den Editiermodus, in dem Sie Variablenwerte ändern können.
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.