Visual Studio Tipps & Tricks, Teil 60: Werte während des Debuggens ändern


Wo wir ja gerade noch beim Debuggen waren, an dieser Stelle noch ein Tipp, der in eine ähnliche Richtung geht. Werte, die ich man sich in Visual Studio im Debugger anzeigen lässt, kann man zur Debugzeit verändern.

Nehmen wir folgenden Schnipsel Code:

image

Wenn wir den Code ausführen, sagt uns das Output-Fenster zweimal hintereinander: VW Golf 2

image

Setzen wir einen Breakpoint auf das zweite Debug.WriteLine und führen wir den Code erneut aus. Wenn die Ausführung unterbrochen wird und wir mit der Maus über die Variablen fahren, bekommen wir die Werte angezeigt, die wir auch pinnen können.

image

Wenn wir jetzt auf einen der  Werte klicken, dann können wir diesen verändern. (Genau genommen muss der Wert dafür nicht gepinnt sein. Das macht es aber leichter.)

image

Unbedingt beachten: Der Typ muss natürlich stimmen. In diesem Fall modifiziere ich einmal eine Zeichenkette, einmal ein Int. Ich benötige also für meinen String die Hochkommas.

image

Ich kann auch ganze Objekte ändern. Das geht am einfachsten über das Immediate Window. Hier kann ich auf die Variablen im Code zugreifen und neue Werte und Objekte zuweisen.

image

Das Ergebnis wird sofort sichtbar.

image

Auch der Output stimmt natürlich, wenn ich den Debugger weiterlaufen lasse.

image

Eine super Möglichkeit um das Programmverhalten mit unterschiedlichen Werten zur Laufzeit zu beeinflussen und zu testen.

Tl;dr:  Werte während des Debuggens kann man auf leichteste Weise modifzieren.

Kurzer Text am Rande:

Dieser Post ist Teil einer längeren Serie, in der ich ein paar der vielleicht nicht ganz so bekannten Features von Visual Studio vorstellen werde. Ich hoffe, für Euch ist der ein oder andere Kniff dabei, den Ihr noch nicht kanntet. Und wenn ihr ihn doch schon kennt: Seid stolz auf Euch und verratet den Trick auch dem Entwickler neben Euch.

Comments (1)

  1. Das ist eines der Features auf die ich nie achte, aber schmerzlich vermisse wenn es nicht zur Verfügung steht.

Skip to main content