Auswerten eines Überwachungsfenster-Ausdruck
Wenn pausen Ausführen von Visual Studio das Debugmodul (aufruft) DE den aktuellen Wert eines Ausdrucks in seiner Überwachungsliste zu bestimmen. DE wertet jeden Ausdruck mit einem Ausdrucksauswerters (EE) aus, und Visual Studio wird der Wert im Überwachen Fenster angezeigt.
Im Folgenden finden Sie eine Übersicht darüber, wie Überwachungslisten ein Ausdruck ausgewertet wird:
Visual Studio ruft DEs IDebugStackFrame2::GetExpressionContext auf, um einen Ausdruckskontext abzurufen, der verwendet werden kann, um Ausdrücke auswerten.
Für jeden Ausdruck in der Überwachungsliste, ruft Visual Studio IDebugExpressionContext2::ParseText Ausdrucks an, um den Text in einen analysierten Ausdruck konvertiert werden soll.
IDebugExpressionContext2::ParseText Aufrufe IDebugExpressionEvaluator::Analyse , um die tatsächlichen Aufgaben der Analyse des Texts zu erledigen und eines IDebugParsedExpression-Objekts zu erstellen.
IDebugExpressionContext2::ParseText erstellt ein IDebugExpression2-Objekt und fügt es in das IDebugParsedExpression-Objekt. Dieses Objekt wird dannDebugExpression2 I in Visual Studio zurückgegeben.
Visual Studio ruft IDebugExpression2::EvaluateSync auf, um den analysierten Ausdruck auszuwerten.
IDebugExpression2::EvaluateSync führt den Aufruf von IDebugParsedExpression::EvaluateSync , um die tatsächliche Auswertung und ein IDebugProperty2-Objekt zu erstellen, das für Visual Studio zurückgegeben wurde.
Visual Studio ruft IDebugProperty2::GetPropertyInfo an, um den Wert des Ausdrucks, der dann in der Überwachungsliste angezeigt wird.
Die Analyse werten anschließend aus
Da das Analysieren eines komplexen Ausdruck kann viel länger dauern als es, der Auswertung eines Ausdrucks Auswertens des Prozesses in zwei Stufen unterteilt ist: 1) analysieren den Ausdruck und 2) werten den analysierten Ausdruck aus. Auf diese Weise stellt Auswertung kann mehrfach auftreten, aber der Ausdruck muss nur einmal analysiert werden. Der Vermittler analysierte Ausdruck wird von der EE in einem IDebugParsedExpression-Objekt zurückgegeben, das wiederum von DE als IDebugExpression2-Objekt gekapselt und zurückgegeben wird. Das IDebugExpression dem die Auswertung alle verzögert Objekt IDebugParsedExpression-Objekt.
Hinweis
Es ist nicht notwendig für eine EE, diesen zwei Schritten zu entsprechen, obwohl dieses Visual Studio angenommen wird. Die EE kann in den gleichen Schritt bei der Analyse und Auswertung IDebugParsedExpression::EvaluateSync aufgerufen wird (dies ist das das MyCEE-Beispiel arbeitet (z).Wenn die Sprache komplexe Ausdrücke erstellen kann, sollten Sie den Analyse des Lernprogramms im Auswertungs des Lernprogramms trennen.Dies kann die Leistung verbessern, insbesondere wenn im Visual Studio-Debugger Überwachung viele Ausdrücke angezeigt werden.
In diesem Abschnitt
Ausdrucksauswertung zur Implementierung des Beispiels
Verwendet das MyCEE-Beispiel Sie durch den Prozess der Ausdrucksauswertung zu wechseln.Auswerten eines Überwachungs-Ausdruck
Erläutert, was nachdem eine erfolgreiche Ausdrucks Analyse ausgeführt wird.
Verwandte Abschnitte
- Auswertungs-Kontext
Stellt die Argumente bereit, die übergeben werden, wenn das Debugmodul (DE EE (Ausdrucksauswertung) aufruft).