Ausdrucksauswertung (Visual Studio Debugging SDK)
Im Break-Modus muss die IDE einfache Ausdrücke mit mehreren Programmvariablen auswerten. Um die Auswertung zu erreichen, muss die Debug-Engine (DE) einen Ausdruck analysieren und auswerten, der in eines der IDE-Fenster eingegeben wurde.
Ausdrücke werden mit der Methode IDebugExpressionContext2::ParseText erstellt und durch die resultierende Schnittstelle IDebugExpression2 dargestellt.
Die Schnittstelle IDebugExpression2 wird vom DE implementiert und ruft seine Methode EvalAsync auf, um eine Schnittstelle IDebugProperty2 an die IDE zurückzugeben, um die Ergebnisse der Ausdrucksauswertung in der IDE anzuzeigen. IDebugProperty2::GetPropertyInfo gibt eine Struktur zurück, die verwendet wird, um den Wert eines Ausdrucks in ein Watch Fenster oder in das Locals Fenster zu setzen.
Das Debuggen eines Pakets oder der Session Debug Manager (SDM) ruft IDebugExpression2::EvaluateAsync oder EvaluateSync auf, um eine IDebugProperty2 Schnittstelle zu erhalten, die das Ergebnis der Auswertung darstellt. IDebugProperty2
hat Methoden, die den Namen, den Typ und den Wert des Ausdrucks zurückgeben. Diese Informationen werden in verschiedenen Debugger-Fenstern angezeigt.
Auswertung von Ausdrücken
Um die Ausdrucksauswertung zu verwenden, müssen Sie die Methode IDebugExpressionContext2::ParseText und alle Methoden der Schnittstelle IDebugExpression2 implementieren, wie in der folgenden Tabelle dargestellt.
Methode | Beschreibung |
---|---|
EvaluateAsync | Wertet einen Ausdruck asynchron aus. |
Abort | Beendet die asynchrone Ausdrucksauswertung. |
EvaluateSync | Wertet einen Ausdruck synchron aus. |
Synchrone und asynchrone Auswertung erfordern die Implementierung der Methode IDebugProperty2::GetPropertyInfo. Asynchrone Ausdrucksauswertung erfordert die Implementierung von IDebugExpressionEvaluationCompleteEvent2.