Udostępnij za pośrednictwem


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:

  1. Aparat debugowania (DE) implementuje interfejs IDebugExpressionContext2 .

  2. Pakiet debugowania pobiera IDebugExpressionContext2 obiekt z interfejsu IDebugStackFrame2 , a następnie wywołuje IDebugStackFrame2::ParseText metodę w celu pobrania obiektu IDebugExpression2 .

  3. 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.

  4. 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)).

Zobacz też