Udostępnij za pośrednictwem


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.

Implementacja

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 obliczania wyrażenia, który aparat debugowania (DE) dostarcza przez zaimplementowanie 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::P arseText . Zwrócony interfejs IDebugExpression2 zawiera przeanalizowane wyrażenie gotowe do oceny.

Za pomocą interfejsu IDebugExpression2 de może uzyskać wartość wyrażenia za pomocą synchronicznej lub asynchronicznej oceny wyrażeń przy użyciu wyrażenia 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 .