Debugging in Visual Studio

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Wenn eine Anwendung sich nicht so verhält wie gewünscht oder diese sogar Ausnahmen auslöst, wollen wir herausfinden, warum das so ist. Wurde ein Wert nicht oder falsch gesetzt, konnte ein Objekt nicht gefüllt werden oder was ist die Ursache für das Problem Hier kommen die Debugging-Techniken von Visual Studio ins Spiel. Der vorliegende Artikel stellt die gängigsten Techniken zum Debuggen von Code unter Visual Studio vor.

Das Wort Debuggen kommt der Sage nach vom Wort Bug. Früher wurden zum Durchführen von Rechenoperationen in Computern Relais verwendet, die durch Insekten blockiert werden konnten. Das Entfernen dieser Tierchen wurde schließlich Debuggen genannt – ein Begriff, der sich bis heute gehalten hat. Nur, dass Bug heute nicht mehr sprichwörtlich Käfer bedeutet, sondern schlicht Programmierfehler.

Anwendung zum Debuggen starten

Grundsätzlich gibt es zwei Modi zum Ausführen von .NET-Anwendungen: Den Debug-Modus und den Release-Modus. Der Release-Modus erzeugt eine leistungsoptimierte Version der Anwendung – diese entspricht auch der Version der Anwendung, die Sie mit dem Erstellen eines Projekts erhalten. Der Debug-Modus hingegen erlaubt es, bei Fehlern den Quellcode anzuzeigen, der für den Fehler verantwortlich ist. Außerdem können Sie in diesem Modus Informationen über den Zustand von Objekten und Variablen erhalten, die gerade im Gültigkeitsbereich liegen und Meldungen ausgeben sowie weitere Funktionen nutzen, die wir Ihnen im Laufe dieses Artikels vorstellen werden. Standardmäßig ist für das Starten einer Anwendung von Visual Studio aus der Debug-Modus eingestellt. Diese Einstellung können Sie leicht über das Menü von Visual Studio ändern (siehe Bild 1).

Einstellen des Ausführungsmodus, hier Debug

Bild 1: Einstellen des Ausführungsmodus, hier Debug

Um die Anwendung nun im Debugging-Modus zu starten, betätigen Sie entweder die Taste F5, klicken auf die Schaltfläche mit dem grünen Pfeil und dem Text Starten oder wählen den Menü-Eintrag Debuggen|Debuggen starten.

Zum Debuggen anhalten

Um eine Anwendung zu debuggen, muss der laufende Code angehalten werden. Dazu gibt es verschiedene Möglichkeiten:

  • Es tritt eine Ausnahme auf, also ein Fehler im Code, der eine weitere Ausführung des Codes verhindert. Ein Beispiel sehen Sie in Bild 2.
  • Debuggen wird durch Laufzeitfehler ermöglicht

    Bild 2: Debuggen wird durch Laufzeitfehler ermöglicht

  • Sie legen einen Haltepunkt im Code fest, damit der Code auch ohne einen Laufzeitfehler an der gewünschten Stelle angehalten und untersucht werden kann.
  • Sie fügen der Anwendung an der gewünschten Stelle die Methode Break der Klasse Debugger hinzu. Dies entspricht der Stop-Anweisung, die Sie vielleicht von Access/VBA kennen. Der Code wird genau an dieser Stelle angehalten.

Haltepunkt setzen

Einen Haltepunkt im Code setzen Sie, indem Sie im Codefenster in der Zeile, in der die Ausführung angehalten werden soll, in den linken, grauen Bereich klicken, sodass dort ein roter Punkt erscheint (siehe Bild 3).

Haltepunkt

Bild 3: Haltepunkt

Eine alternative Möglichkeit zum Hinzufügen von Haltepunkten ist die Taste F9. Bewegen Sie die Einfügemarke in die gewünschte Zeile und betätigen Sie diese Taste, um einen Haltepunkt hinzuzufügen oder diesen wieder zu entfernen.

Sie können alle ausführbaren Zeilen mit einem Haltepunkt versehen, was alle Zeilen mit Ausnahme der Deklarationszeilen umfasst.

Wenn die Ausführung an der markierten Zeile stoppt, bedeutet das übrigens, dass die markierte Zeile noch nicht ausgeführt wurde. Wenn Sie also Variablen in einer Zeile nach der Ausführung (etwa der Zuweisung eines Wertes an eine Variable) untersuchen möchten, können Sie den Haltepunkt auch gleich auf die folgende Zeile verschieben.

Haltepunkte per Code

Eine weitere Möglichkeit, einen Haltepunkt zu setzen, bietet die Klasse Debugger. Diese stellt die Methode Break zur Verfügung, die beim Erreichen den Code unterbricht (siehe Bild 4).

Programmierter Stop

Bild 4: Programmierter Stop

Warum sollte man diese Methode nutzen, statt einfach einen Haltepunkt zu setzen Unter Access und dem VBA-Editor wurden Haltepunkte gelöscht, wenn man die Anwendung geschlossen und erneut geöffnet hat. Das war unter Access der Grund, die Stop-Anweisung zu verwenden – wenn die Anwendung abgestürzt ist, war diese nach dem Neustart wieder vorhanden, die Haltepunkte aber nicht. Unter Visual Studio sind die Haltepunkte allerdings nach dem Schließen und erneuten Öffnen des Projekts noch vorhanden – eigentlich braucht man Debugger.Break also nicht.

Beim Erreichen eines Haltepunktes

Wenn Sie beim Debuggen einen Haltepunkt erreichen, können Sie verschiedene Aktionen durchführen. Die erste ist, Informationen über die aktuelle Situation zu ermitteln. Dazu können Sie beispielsweise über den Namen einer Variablen fahren, um ihren aktuellen Wert zu ermitteln (siehe Bild 5).

Auslesen von Variableninhalten

Bild 5: Auslesen von Variableninhalten

Weiter im Code

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar