Отображение локальных параметров
Внимание
В 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
.
В этом разделе
Пример реализации локальных языков использует примеры для пошагового выполнения процесса реализации локальных параметров.
Связанный контент
Контекст оценки объясняет, что при вызове подсистемы отладки (DE) средство оценки выражений (EE) передает три аргумента.