Поделиться через


Оценка выражений (пакет SDK для отладки Visual Studio)

В режиме останова интегрированная среда разработки должна оценивать простые выражения, включающие несколько переменных программы. Чтобы выполнить оценку, подсистема отладки (DE) должна проанализировать и оценить выражение, введенное в одну из окон интегрированной среды разработки.

Выражения создаются с помощью метода IDebugExpressionContext2::ParseText и представлены результирующим интерфейсом IDebugExpression2.

Интерфейс IDebugExpression2 реализуется в DE и вызывает его метод EvalAsync, чтобы вернуть интерфейс IDebugProperty2 в IDE для отображения результатов вычисления выражения. IDebugProperty2::GetPropertyInfo возвращает структуру, которая используется для вставки значения выражения в окно "Контроль" или в окно "Локальные".

Пакет отладки или диспетчер отладки сеансов (SDM) вызывает IDebugExpression2::EvaluateAsync или EvaluateSync , чтобы получить интерфейс IDebugProperty2 , представляющий результат оценки. IDebugProperty2 имеет методы, возвращающие имя, тип и значение выражения. Эта информация отображается в различных окнах отладчика.

Использование оценки выражений

Чтобы использовать оценку выражений, необходимо реализовать метод IDebugExpressionContext2::P arseText и все методы интерфейса IDebugExpression2 , как показано в следующей таблице.

Метод Description
EvaluateAsync Вычисляет выражение асинхронно.
прерывание Завершает асинхронную оценку выражений.
EvaluateSync Вычисляет выражение синхронно.

Синхронная и асинхронная оценка требуют реализации метода IDebugProperty2::GetPropertyInfo . Для асинхронного вычисления выражений требуется реализация IDebugExpressionEvaluationCompleteEvent2.

См. также