Freigeben über


Lokale Variablen anzeigen

Wichtig

Seit Visual Studio 2015 ist diese Art der Implementierung von Ausdrucksauswertungen veraltet. Informationen zum Implementieren von CLR-Ausdrucksauswertungen finden Sie unter CLR-Ausdrucksauswertungen und Beispiel für die Auswertung verwalteter Ausdrücke.

Die Ausführung erfolgt immer im Kontext einer Methode, auch bekannt als die enthaltende Methode oder aktuelle Methode. Wenn die Ausführung pausiert, ruft Visual Studio die Debug-Engine (DE) auf, um eine Liste der lokalen Variablen und Argumente zu erhalten, die zusammenfassend als die lokalen Variablen der Methode bezeichnet werden. Visual Studio zeigt diese lokalen Variablen und ihre Werte im Fenster Lokale Variablen an.

Zum Anzeigen von lokalen Variablen ruft die DE die GetMethodProperty-Methode auf, der EE auf und gibt ihr einen Auswertungskontext, d. h. einen Symbolanbieter (Symbol Provider, SP), die aktuelle Ausführungsadresse und ein Binder-Objekt. Weitere Informationen finden Sie unter Bewertungskontext. Wenn der Aufruf erfolgreich ist, gibt die IDebugExpressionEvaluator::GetMethodProperty-Methode ein IDebugProperty2-Objekt zurück, das die Methode darstellt, die die aktuelle Ausführungsadresse enthält.

Die DE ruft EnumChildren auf, um ein IEnumDebugPropertyInfo2-Objekt zu erhalten, das gefiltert wird, um nur lokale Variablen zurückzugeben und aufgezählt wird, um eine Liste von DEBUG_PROPERTY_INFO-Strukturen zu erzeugen. Jede Struktur enthält den Namen, den Typ und den Wert einer lokalen Variable. Der Typ und der Wert werden als formatierte Zeichenketten gespeichert, die für die Anzeige geeignet sind. Der Name, der Typ und der Wert werden normalerweise zusammen in einer Zeile des Fensters Lokale Variablen angezeigt.

Hinweis

Die QuickWatch- und Watch-Fenster zeigen auch Variablen mit dem gleichen Format von Name, Wert und Typ an. Diese Werte werden jedoch durch den Aufruf von GetPropertyInfo anstelle von IDebugProperty2::EnumChildren erhalten.

In diesem Abschnitt

Beispielimplementierung von lokalen Variablen führt Sie anhand von Beispielen schrittweise durch den Prozess der Implementierung von lokalen Variablen.