Вычислитель выражений

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

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

Выражения создаются с помощью метода ParseText следующим образом:

  1. Модуль отладки (DE) реализует интерфейс IDebugExpressionContext2 .

  2. Пакет отладки получает IDebugExpressionContext2 объект из интерфейса IDebugStackFrame2 , а затем вызывает IDebugStackFrame2::ParseText метод для получения объекта IDebugExpression2 .

  3. Пакет отладки вызывает метод EvaluateSync или метод EvaluateAsync , чтобы получить значение выражения. IDebugExpression2::EvaluateAsync вызывается из окна Command/Интерпретация. Вызов всех остальных IDebugExpression2::EvaluateSyncкомпонентов пользовательского интерфейса.

  4. Результатом вычисления выражения является объект IDebugProperty2 , содержащий имя, тип и значение результата вычисления выражения.

    Во время оценки выражений EE требует сведения из компонента поставщика символов. Поставщик символов предоставляет символьные сведения, используемые для идентификации и понимания синтаксического выражения.

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

Примечания по реализации

Обработчики отладки Visual Studio ожидают взаимодействия с вычислителем выражений с помощью интерфейсов CLR. В результате средство оценки выражений, работающее с подсистемами отладки Visual Studio, должно поддерживать среду CLR (полный список всех интерфейсов отладки СРЕДЫ CLR можно найти в debugref.doc, которая входит в состав пакета SDK для Windows.

См. также