Udostępnij przez


Analizator wyrażeń

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 obiekt IDebugExpressionContext2 z interfejsu IDebugStackFrame2, a następnie wywołuje na nim metodę IDebugStackFrame2::ParseText, aby uzyskać obiekt IDebugExpression2.

  3. Pakiet debugowania wywołuje metodę EvaluateSync lub metodę EvaluateAsync , aby uzyskać wartość wyrażenia. IDebugExpression2::EvaluateAsync jest wywoływana z okna Komendy/Bezpośrednie. 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, przez DE za pośrednictwem menedżera debugowania sesji (SDM) jest wysyłane zdarzenie asynchroniczne w celu powiadomienia środowiska IDE, że ocena wyrażeń jest ukończona. Następnie wynik oceny jest zwracany z wywołania metody IDebugExpression2::EvaluateSync.

Uwagi dotyczące implementacji

Silniki debugowania Visual Studio oczekują komunikacji 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 także