Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Собственные объекты отладчика представляют различные конструкции среды отладчика. Расширения JavaScript имеют прямой доступ к системе типов базового языка. Этот доступ выражается через понятие объектов типа. В этом разделе описываются свойства, связанные с объектами типа.
Собственные объекты отладчика представляют различные конструкции и поведение среды отладчика. Объекты можно передать в расширения JavaScript или получить из них, чтобы управлять состоянием отладчика.
Сведения о расширениях JavaScript для объектов отладчика см. в разделе "Собственные объекты отладчика" в расширениях JavaScript.
Общие сведения о работе с JavaScript см. в статье "Скрипт отладчик JavaScript".
Объекты типа
Объект типа можно получить несколькими способами:
- Из объекта: если скрипт имеет собственный объект в JavaScript, свойство targetType можно получить для получения объекта типа , представляющего статический тип собственного объекта.
- Из узла: API host.getModuleType можно вызвать для возврата объекта типа для любого типа, определенного в определенном модуле.
После получения объекта типа он имеет следующие свойства:
Имя | Подпись | Описание |
имя | Недвижимость | Возвращает имя типа. |
размер | Недвижимость | Возвращает размер типа в виде 64-разрядного значения. |
typeKind | Недвижимость | Возвращает тип типа в виде строки. Это может быть одно из следующих значений: "udt", "указатель", "memberPointer", "array", "function", "typedef", "enum" или "встроенный". |
базовый тип | Недвижимость | Возвращает объект типа для типа, на котором основан этот тип. Это не иллюстрирует наследование в C++. Для типа указателя это тип указанной вещи. Для типа массива это тип, содержащийся в массиве. |
Поля | Недвижимость | Возвращает объект, имеющий все именованные поля типа, доступные как именованные свойства. Значение каждого свойства — это объект поля , как описано ниже. |
baseClasses | Недвижимость | Возвращает массив всех непосредственных базовых классов типа. Каждый объект в массиве является объектом базового класса , как описано ниже. |
functionReturnType | Недвижимость | Для типов функций возвращается объект типа, представляющий возвращаемый тип функции. |
functionParameterTypes | Недвижимость | Для типов функций возвращается массив объектов типов, представляющих типы параметров функции. |
Конвенция вызова функций | Недвижимость | Для типов функций это возвращает соглашение о вызове функции в виде строки. Это может быть одно из следующих значений: "неизвестно", "__cdecl", "fastcall", "stdcall" или "thiscall". |
pointerKind | Недвижимость | Для типов указателей это возвращает тип указателя в виде строки. Это может быть одно из следующих значений: "standard", "reference", "rValueReference" или "cxHat". |
Тип члена | Недвижимость | Для типов указателей, которые являются указателями элементов, возвращается объект типа, представляющий класс-член. |
isGeneric | Недвижимость | Возвращает, является ли тип универсальным или нет. Это возвращает значение true для типов шаблонов. |
genericArguments | Недвижимость | Для типов, которые являются универсальными, это возвращает массив универсальных аргументов. Такие аргументы могут быть аргументами типа или могут быть константными значениями. |
isBitField | Недвижимость | Возвращает значение, указывающее, является ли хранилище для типа битовым полем или нет. |
позиции полей битов | Недвижимость | Для типов, представляющих хранилище битовых полей, возвращается битовое описание поля, указывающее позиции битового поля. |
Все эти записи присутствуют во время инициализации на этапе 2.
Объекты полей
Каждое поле в типе описывается объектом поля со свойствами следующим образом:
Имя | Подпись | Описание |
имя | Недвижимость | Возвращает имя поля. |
тип | Недвижимость | Возвращает объект типа, представляющий статический тип поля. |
locationKind | Недвижимость | Возвращает тип расположения (хранилище) для поля в виде строки. Это может быть одно из следующих значений: "member", "static", "constant" или "none". |
смещение | Недвижимость | Для полей с типом расположения, указывающим смещение (например, "member"), это возвращает смещение поля в его содержающем типе в виде 64-разрядного значения. |
расположение | Недвижимость | Для полей с типом расположения, указывающим расположение (например, "статический"), это возвращает расположение поля в качестве объекта расположения. |
ценность | Недвижимость | Для полей с типом расположения, указывающим значение (например, "константа"), это возвращает значение поля. |
Все эти записи присутствуют на этапе 2 инициализации.
Объекты базового класса
Каждый базовый класс в типе описывается объектом базового класса со свойствами следующим образом:
Имя | Подпись | Описание |
имя | Недвижимость | Возвращает имя базового класса. |
смещение | Недвижимость | Возвращает смещение этого базового класса в типе, который его содержит. |
тип | Недвижимость | Возвращает объект типа, представляющий статический тип базового класса. |
Все эти записи присутствуют на этапе 2 инициализации.
Пример кода
Пример кода см. в скрипте ImageInfo.js. Дополнительные сведения о примерах кода см. в статье "Примеры скриптов отладчика JavaScript".
// fieldType references basic types that should be present in **ANY** symbolic information.
// Just grab the first module as the "reference module" for this purpose. We cannot grab
// "ntdll" generically as we want to avoid a situation in which the debugger opens a module (-z ...)
// from failing.
//
var moduleName = contextInheritorModule.__ComparisonName;
var typeObject = host.getModuleType(moduleName, field.fieldType, contextInheritorModule);
var result = host.createTypedObject(addr, typeObject);
См. также
собственные объекты отладчика в расширениях JavaScript