Wyrażenie
Ewaluatory wyrażeń (EE) badają składnię języka do analizowania i oceniania zmiennych i wyrażeń w czasie wykonywania, co pozwala na wyświetlanie ich przez użytkownika, gdy środowisko IDE jest w trybie przerwania.
Używanie ewaluatorów wyrażeń
Wyrażenia są tworzone przy użyciu metody ParseText w następujący sposób:
Aparat debugowania (DE) implementuje interfejs IDebugExpressionContext2 .
Pakiet debugowania pobiera
IDebugExpressionContext2
obiekt z interfejsu IDebugStackFrame2 , a następnie wywołujeIDebugStackFrame2::ParseText
metodę w celu pobrania obiektu IDebugExpression2 .Pakiet debugowania wywołuje metodę EvaluateSync lub metodę EvaluateAsync , aby uzyskać wartość wyrażenia.
IDebugExpression2::EvaluateAsync
jest wywoływana z okna polecenia/natychmiastowego. Wszystkie inne składniki interfejsu użytkownika wywołają metodęIDebugExpression2::EvaluateSync
.Wynikiem oceny wyrażenia jest obiekt IDebugProperty2 , który zawiera nazwę, typ i wartość wyniku oceny wyrażenia.
Podczas obliczania wyrażenia EE wymaga informacji ze składnika dostawcy symboli. Dostawca symboli dostarcza informacje symboliczne używane do identyfikowania i zrozumienia przeanalizowanego wyrażenia.
Po zakończeniu oceny wyrażeń asynchronicznych zdarzenie asynchroniczne jest wysyłane przez de za pośrednictwem menedżera debugowania sesji (SDM) w celu powiadomienia środowiska IDE, że ocena wyrażenia zostanie ukończona. Wynik oceny jest następnie zwracany z wywołania do
IDebugExpression2::EvaluateSync
metody .
Uwagi o implementacji
Aparaty debugowania programu Visual Studio oczekują rozmowy z ewaluatorem wyrażeń przy użyciu interfejsów środowiska Common Language Runtime (CLR). W związku z tym ewaluator wyrażeń, który współpracuje z aparatami debugowania programu Visual Studio, musi obsługiwać środowisko CLR (pełną listę wszystkich interfejsów debugowania CLR można znaleźć w debugref.doc, który jest częścią zestawu Windows Software Development Kit (SDK)).