Freigeben über


IDebugExpression2

Diese Schnittstelle stellt einen analysierten Ausdruck dar, der zum Binden und zum Auswerten bereit ist.

IDebugExpression2 : IUnknown

Hinweise für Implementierer

Das Debugmodul (DE) implementiert diese Schnittstelle, um einen analysierten Ausdruck dargestellt werden, der ausgewertet werden kann.

Hinweise für Aufrufer

Ein Aufruf von IDebugExpressionContext2::ParseText gibt diese Schnittstelle zurück. IDebugStackFrame2::GetExpressionContext gibt die IDebugExpressionContext2-Schnittstelle zurück. Diese Schnittstellen sind nur verfügbar, wenn das Programm, das gedebuggt wird, angehalten wurde und ein Stapelrahmen verfügbar ist.

Methoden in die Vtable-Reihenfolge

In der folgenden Tabelle werden die Methoden von IDebugExpression2an.

Methode

Beschreibung

IDebugExpression2::EvaluateAsync

Wertet den Ausdruck asynchron aus.

IDebugExpression2::Abbruch

Beendet die asynchrone Ausdrucksauswertung.

IDebugExpression2::EvaluateSync

Wertet den Ausdruck synchron aus.

Hinweise

Wenn ein Programm angehalten wurde, erhält der Debug- Manager der Sitzung (SDM) ein Stapelrahmen von DE mit einem Aufruf von IDebugThread2::EnumFrameInfo. Das SDM ruft dann IDebugStackFrame2::GetExpressionContext auf, um die IDebugExpressionContext2-Schnittstelle abzurufen. Dies wird bei einem Aufruf von IDebugExpressionContext2::ParseText befolgt, um die IDebugExpression2-Schnittstelle zu erstellen, die den analysierten Ausdruck darstellt, der ausgewertet werden kann.

Das SDM ruft entweder IDebugExpression2::EvaluateSync oder IDebugExpression2::EvaluateAsync an, um den Ausdruck auszuwerten und tatsächlich einen Wert zu erzeugen.

In einer Implementierung von IDebugExpressionContext2::ParseTextDE CoCreateInstance-Funktion verwendet, COM, um einen Ausdrucksauswertung zu instanziieren und eine IDebugExpressionEvaluator-Schnittstelle abzurufen (finden Sie im Beispiel in der IDebugExpressionEvaluator-Schnittstelle). DE IDebugExpressionEvaluator::Analyse wird anschließend zum Abrufen einer Verbindung IDebugParsedExpression-Schnittstelle. Diese Schnittstelle wird in der Implementierung von IDebugExpression2::EvaluateSync und IDebugExpression2::EvaluateAsync verwendet, um die Evaluierung auszuführen.

Anforderungen

Header: msdbg.h

Namespace: Microsoft.VisualStudio.Debugger.Interop

Assembly: Microsoft.VisualStudio.Debugger.Interop.dll

Siehe auch

Referenz

IDebugExpressionEvaluationCompleteEvent2::GetExpression

Konzepte

Kern-Schnittstellen