Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Собственные объекты отладчика представляют различные конструкции среды отладчика. Расширения 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