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


Отображение локальных параметров

Внимание

В Visual Studio 2015 такая реализация вычислителя выражений была сделана нерекомендуемой. Сведения о реализации вычислителей выражений в среде CLR см. на страницах CLR expression evaluators (Вычислители выражений CLR) и Managed expression evaluator sample (Пример управляемого вычислителя выражений).

Выполнение всегда выполняется в контексте метода, также известного как содержащий метод или текущий метод. При приостановке выполнения Visual Studio вызывает подсистему отладки (DE), чтобы получить список локальных переменных и аргументов, коллективно вызывая локальные локальные параметры метода. Visual Studio отображает эти локальные и их значения в окне "Локальные".

Чтобы отобразить локальные параметры, de вызывает метод GetMethodProperty , принадлежащий EE, и дает ему контекст оценки, то есть поставщик символов (SP), текущий адрес выполнения и объект привязки. Дополнительные сведения см. в контексте оценки. Если вызов выполнен успешно, IDebugExpressionEvaluator::GetMethodProperty метод возвращает объект IDebugProperty2 , представляющий метод, содержащий текущий адрес выполнения.

De вызывает EnumChildren для получения объекта IEnumDebugPropertyInfo2, который фильтруется, чтобы вернуть только локальные значения и перечислить для создания списка DEBUG_PROPERTY_INFO структур. Каждая структура содержит имя, тип и значение локального объекта. Тип и значение хранятся в виде отформатированных строк, подходящих для отображения. Имя, тип и значение обычно отображаются вместе в одной строке окна "Локальные".

Примечание.

Окна quickWatch и Watch также отображают переменные с одинаковым форматом имени, значения и типа. Однако эти значения получаются путем вызова GetPropertyInfo вместо IDebugProperty2::EnumChildren.

В этом разделе

Пример реализации локальных языков использует примеры для пошагового выполнения процесса реализации локальных параметров.