Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 .