Udostępnij przez


Ocena wyrażeń

Wyrażenia są tworzone na podstawie ciągów przekazywanych z okien Autos, Watch, QuickWatch lub Immediate . Po obliczeniu wyrażenia generuje ciąg drukowalny zawierający nazwę i typ zmiennej lub argumentu oraz jego wartość. Ten ciąg jest wyświetlany w odpowiednim oknie ŚRODOWISKA IDE.

Implementation

Wyrażenia są oceniane, gdy program zatrzymał się w punkcie przerwania. Samo wyrażenie jest reprezentowane przez interfejs IDebugExpression2 , który reprezentuje przeanalizowane wyrażenie gotowe do powiązania i oceny w danym kontekście oceny wyrażenia. Ramka stosu określa kontekst ewaluacji wyrażeń, który dostarczany jest przez aparat debugowania (DE) za pomocą zaimplementowanego interfejsu IDebugExpressionContext2.

Biorąc pod uwagę ciąg użytkownika i interfejs IDebugExpressionContext2, aparat debugowania (DE) może uzyskać interfejs IDebugExpression2, przekazując ciąg użytkownika do metody IDebugExpressionContext2::ParseText. Zwrócony interfejs IDebugExpression2 zawiera przeanalizowane wyrażenie gotowe do oceny.

Za pomocą interfejsu IDebugExpression2 środowisko debugowania (DE) może uzyskać wartość wyrażenia poprzez synchroniczną lub asynchroniczną ewaluację wyrażeń, używając IDebugExpression2::EvaluateSync lub IDebugExpression2::EvaluateAsync. Ta wartość wraz z nazwą i typem zmiennej lub argumentu jest wysyłana do środowiska IDE do wyświetlania. Wartość, nazwa i typ są reprezentowane przez interfejs IDebugProperty2 .

Aby włączyć ocenę wyrażeń, de musi zaimplementować interfejsy IDebugExpression2 i IDebugExpressionContext2 . Zarówno synchroniczna, jak i asynchroniczna ocena wymagają implementacji metody IDebugProperty2::GetPropertyInfo .