Share via


Lokal 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 findet immer im Kontext einer Methode statt, auch als enthaltende Methode oder aktuelle Methode bezeichnet. Wenn die Ausführung angehalten wird, ruft Visual Studio das Debugmodul (DE) auf, um eine Liste der lokalen Variablen und Argumente abzurufen, die gemeinsam als Lokale der Methode bezeichnet werden. Visual Studio zeigt diese Gebietsschemas und deren Werte im Fenster "Lokal" an.

Zum Anzeigen von Locals ruft die DE die GetMethodProperty-Methode auf, die zum EE gehört, und gibt ihr einen Auswertungskontext, d. h. einen Symbolanbieter (SP), die aktuelle Ausführungsadresse und ein Binderobjekt. Weitere Informationen finden Sie im Evaluierungskontext. Wenn der Aufruf erfolgreich verläuft, 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 abzurufen, das so gefiltert wird, dass nur Lokale zurückgegeben und aufgezählt werden, um eine Liste von DEBUG_PROPERTY_INFO Strukturen zu erzeugen. Jede Struktur enthält den Namen, typ und den Wert einer lokalen Struktur. Der Typ und der Wert werden als formatierte Zeichenfolgen gespeichert, die für die Anzeige geeignet sind. Der Name, der Typ und der Wert werden in der Regel in einer Zeile des Fensters "Lokal" zusammen angezeigt.

Hinweis

Die Fenster "QuickWatch " und "Watch " zeigen außerdem Variablen mit demselben Format von Name, Wert und Typ an. Diese Werte werden jedoch durch Aufrufen von GetPropertyInfo anstelle von IDebugProperty2::EnumChildren.

In diesem Abschnitt

Beispielimplementierung von Locals Verwendet Beispiele, um den Prozess der Implementierung von Locals zu durchlaufen.