Untersuchen von Variablen über die Fenster „Auto“ und „Lokale Variablen“
In den Fenstern Auto und Lokale Variablen werden Variablenwerte während des Debuggens angezeigt. Die Fenster sind nur während einer Debugsitzung verfügbar. Im Fenster Auto werden Variablen angezeigt, die in der Nähe der aktuellen Anweisung, wo der Debugger angehalten wurde, verwendet werden. Im Fenster Lokale Variablen werden Variablen angezeigt, die im lokalen Gültigkeitsbereich definiert sind, der in der Regel aus der aktuellen Funktion oder Methode besteht.
Hinweis
Wenn Sie zum ersten Mal versuchen, Code zu debuggen, sollten Sie Debuggen für Einsteiger sowie Debugverfahren und -tools lesen, bevor Sie diesen Artikel durchgehen.
Das Fenster Auto ist für C#-, Visual Basic-, C++- und Python-Code, aber nicht für JavaScript oder F# verfügbar.
Wenn Sie das Fenster Auto während des Debuggens öffnen möchten, klicken Sie auf Debuggen>Fenster>Auto, oder drücken Sie STRG+ALT+V>A.
Wenn Sie das Fenster Lokale Variablen während des Debuggens öffnen möchten, klicken Sie auf Debuggen>Fenster>Lokale Variablen, oder drücken Sie ALT+4.
Verwenden der Fenster „Auto“ und „Lokale Variablen“
Arrays und Objekte werden in den Fenstern Auto und Lokale Variablen als Struktursteuerelemente angezeigt. Klicken Sie auf den Pfeil links neben dem Variablennamen, damit die Ansicht erweitert wird und die Felder und Eigenschaften angezeigt werden. Dies ist ein Beispiel für ein System.IO.FileStream-Objekt im Fenster Lokale Variablen:
Ein roter Wert im Fenster Lokale Variablen oder Auto bedeutet, dass sich der Wert seit der letzten Auswertung geändert hat. Die Änderung kann aus einer vorherigen Debugsitzung stammen oder daran liegen, dass Sie den Wert im Fenster geändert haben.
Das Standardzahlenformat in Debuggerfenstern ist das Dezimalformat. Wenn Sie es jedoch auf das Hexadezimalformat umstellen möchten, klicken Sie mit der rechten Maustaste in das Fenster Lokale Variablen oder Auto, und wählen Sie Hexadezimale Anzeige aus. Die Änderung wird in allen Debuggerfenstern übernommen.
Bearbeiten von Variablenwerten in den Fenstern „Lokale Variablen“ oder „Auto“
Die meisten Werte in den Fenstern Auto und Lokale Variablen lassen sich bearbeiten, indem Sie darauf doppelklicken und einen neuen Wert eingeben.
Sie können Sie einen Ausdruck für einen Wert eingeben, etwa a + b
. Der Debugger akzeptiert im die meisten gültigen Sprachausdrücke.
In nativem C++-Code müssen Sie möglicherweise den Kontext eines Variablennamens qualifizieren. Weitere Informationen finden Sie unter Kontextoperator (C++).
Achtung
Bevor Sie Änderungen an Werten und Ausdrücken vornehmen, sollten Sie die Konsequenzen genau kennen. Solche Änderungen können bspw. zu folgenden Problemen führen:
Die Auswertung bestimmter Ausdrücke kann zur Änderung des Werts einer Variablen führen oder sich auf den Programmzustand auswirken. Wird beispielsweise
var1 = ++var2
ausgewertet, wird der Wert vonvar1
undvar2
geändert. Diese Ausdrücke haben sogenannte Nebenwirkungen. Nebenwirkungen können unerwartete Ergebnisse verursachen, wenn Sie sich ihrer Existenz nicht bewusst sind.Das Bearbeiten von Gleitkommawerten kann aufgrund der Dezimal-zu-Binär-Konvertierung von Nachkommastellen zu geringfügigen Ungenauigkeiten führen. Auch eine scheinbar harmlose Änderung kann die Bits einer Gleitkommavariable ändern.
Suchen im Fenster „Auto“ oder „Lokale Variablen“
Sie können mithilfe der Suchleiste oberhalb der Fenster Auto und Lokale Variablen nach Schlüsselwörtern in den Spalten „Name“, „Wert“ und „Typ“ suchen. Drücken Sie auf EINGABE, oder klicken Sie auf einen der Pfeile, um eine Suche auszuführen. Zum Abbrechen einer laufenden Suche wählen Sie das Symbol „x“ in der Suchleiste aus.
Mit den Pfeilen nach links und rechts (UMSCHALT+F3 bzw. F3) können Sie zwischen gefundenen Übereinstimmungen navigieren.
Über die Dropdown-Liste Tiefer suchen am oberen Rand der Fenster Automatische und Lokale Variablen können Sie die Gründlichkeit der Suche festlegen, indem Sie auswählen, in wie vielen Ebenen von geschachtelten Objekten gesucht werden soll.
Anheften von Eigenschaften in den Fenstern „Auto“ oder „Lokale Variablen“
Hinweis
Dieses Feature wird für .NET Core 3.0 und höher unterstützt.
Mit dem Tool Anheftbare Eigenschaften können Sie Objekte schnell anhand ihrer Eigenschaften in den Fenstern „Auto“ und „Lokale Variablen“ überprüfen. Zum Starten dieses Tools müssen Sie auf eine Eigenschaft zeigen und auf das daraufhin angezeigte Anheften-Symbol klicken. Sie können auch mit der rechten Maustaste auf die Eigenschaft klicken und dann im angezeigten Kontextmenü auf die Option Member als Favorit anheften klicken. Dadurch wird diese Eigenschaft in der Eigenschaftenliste des Objekts an oberste Stelle gesetzt, und der Eigenschaftsname und -wert wird in der Spalte Wert angezeigt. Wenn Sie eine Eigenschaft lösen möchten, wählen Sie das Anheften-Symbol erneut aus, oder wählen Sie im Kontextmenü die Option Member als Favorit lösen aus.
Sie können beim Anzeigen der Eigenschaftenliste des Objekts in den Fenstern Automatische und Lokale Variablen auch Eigenschaftsnamen umschalten und nicht angeheftete Eigenschaften herausfiltern. Sie können auf die einzelnen Optionen zugreifen, indem Sie in der Symbolleiste oberhalb der Fenster „Auto“ und „Lokale Variablen“ auf die Schaltflächen klicken.
Ändern des Kontexts für das Fenster „Auto“ oder „Lokale Variablen“
Mithilfe der Symbolleiste Debugspeicherort können Sie eine gewünschte Funktion oder einen gewünschten Thread oder Prozess auswählen, der den Kontext für die Fenster Auto und Lokale Variablen ändert.
Die Symbolleiste Debugspeicherort wird aktiviert, indem Sie auf den leeren Teil des Symbolleistenbereich klicken und Debugspeicherort aus dem Drop-down-Menü auswählen oder auf Ansicht>Symbolleisten>Debugspeicherort klicken.
Legen Sie einen Haltepunkt fest, und starten Sie das Debuggen. Wenn der Debugger am Haltepunkt ankommt, wird die Ausführung angehalten. Die genaue Stelle im Code wird in der Symbolleiste Debugspeicherort angezeigt.
KI-Unterstützung
Wenn Sie Copilot haben, können Sie KI-Unterstützung erhalten, während Sie Variablen in den Fenstern „Autos“ oder „Lokale Variablen“ oder in „Datentipps“ betrachten. Klicken Sie mit der rechten Maustaste auf eine Variable, und verwenden Sie die Schaltfläche Copilot fragen . In diesem Szenario kennt Copilot bereits den Kontext für Ihre Frage, sodass Sie den Kontext nicht selbst im Chat angeben müssen. Weitere Informationen finden Sie unter Mit Copilot debuggen.
Variablen im Fenster „Auto“ (C#, C++, Visual Basic, Python)
Je nach Codesprache werden verschiedene Variablen im Fenster Auto angezeigt.
In C# und Visual Basic wird im Fenster Auto jede Variable angezeigt, die in der aktuellen oder vorherigen Zeile verwendet wird. In C#- oder Visual Basic-Code deklarieren Sie z. B. die folgenden vier Variablen:
public static void Main() { int a, b, c, d; a = 1; b = 2; c = 3; d = 4; }
Legen Sie den Haltepunkt auf die Zeile
c = 3;
fest, und starten Sie den Debugger. Wenn die Ausführung angehalten wird, wird Folgendes im Fenster Auto angezeigt:c
hat den Wert 0 (Null), weil die Zeilec = 3
noch nicht ausgeführt wurde.In C++ werden im Fenster Auto die Variablen angezeigt, die in den letzten drei Zeilen vor der Zeile verwendet wurden, in der die Ausführung angehalten wurde. In C++-Code deklarieren Sie z. B. sechs Variablen:
void main() { int a, b, c, d, e, f; a = 1; b = 2; c = 3; d = 4; e = 5; f = 6; }
Legen Sie den Haltepunkt auf die Zeile
e = 5;
fest, und führen Sie den Debugger aus. Wenn die Ausführung beendet wird, wird Folgendes im Fenster Auto angezeigt:Die Variable
e
wurde deinitialisiert. Dies liegt daran, dass die Zeilee = 5
noch nicht ausgeführt wurde.
Anzeigen von Rückgabewerten von Methodenaufrufen
In .NET- und C++-Code können Sie Rückgabewerte im Fenster Auto untersuchen, wenn Sie in einem Methodenaufruf einen Prozedurschritt oder einen Rücksprung ausführen. Das Anzeigen der Rückgabewerte eines Methodenaufrufs kann nützlich sein, wenn die Werte nicht in lokalen Variablen gespeichert werden. Eine Methode kann als Parameter oder als Rückgabewert einer anderen Methode verwendet werden.
Hinweis
Ab Visual Studio 2022, Version 17.12 Preview 3, können Sie auch Rückgabewerte inline und nicht nur im Fenster "Autos" anzeigen.
Im folgenden C#-Code werden z. B. die Rückgabewerte von zwei Funktionen hinzugefügt:
static void Main(string[] args)
{
int a, b, c, d;
a = 1;
b = 2;
c = 3;
d = 4;
int x = sumVars(a, b) + subtractVars(c, d);
}
private static int sumVars(int i, int j)
{
return i + j;
}
private static int subtractVars(int i, int j)
{
return j - i;
}
So lassen Sie die Rückgabewerte der Methodenaufrufe sumVars()
und subtractVars()
im Fenster „Auto“ anzeigen:
Legen Sie einen Haltepunkt in der Zeile
int x = sumVars(a, b) + subtractVars(c, d);
fest.Starten Sie das Debuggen, und klicken Sie auf Prozedurschritt, oder drücken Sie F10, wenn die Ausführung am Haltepunkt angehalten wird. Daraufhin sollten folgende Rückgabewerte im Fenster Auto angezeigt werden: