Freigeben über


Lokal anzeigen

Von Bedeutung

In Visual Studio 2015 ist diese Methode der Implementierung von Ausdrucksvaluatoren veraltet. Informationen zur Implementierung von CLR-Ausdrucksauswertern finden Sie unter CLR-Ausdrucksauswerter und Beispiel für verwaltete Ausdrucksauswerter.

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 lokalen Variablen und deren Werte im Fenster "Lokale Variablen" 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 Elemente zurückgegeben und aufgezählt werden, um eine Liste von DEBUG_PROPERTY_INFO Strukturen zu erstellen. Jede Struktur enthält den Namen, Typ und Wert einer lokalen Variablen. 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.