Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los objetos del depurador nativo representan varias construcciones del entorno del depurador. Las extensiones de JavaScript tienen acceso directo al sistema de tipos del lenguaje subyacente. Este acceso se expresa a través de la noción de objetos de tipo. En este tema se describen las propiedades asociadas a objetos de tipo.
Los objetos del depurador nativo representan diversas construcciones y comportamientos del entorno del depurador. Los objetos se pueden pasar a extensiones de JavaScript (o adquirirse en ellas) para manipular el estado del depurador.
Para obtener información sobre las extensiones de JavaScript del objeto Debugger, vea Objetos de depurador nativo en extensiones de JavaScript.
Para obtener información general sobre cómo trabajar con JavaScript, consulte Scripting del depurador de JavaScript.
Objetos de tipo
Un objeto de tipo se puede adquirir de varias maneras:
- Desde un objeto: si un script tiene un objeto nativo dentro de JavaScript, se puede tener acceso a la propiedad targetType en ese objeto para obtener un objeto de tipo que represente el tipo estático del objeto nativo.
- Desde host: se puede llamar a la API host.getModuleType para devolver el objeto de tipo para cualquier tipo definido en un módulo determinado.
Una vez adquirido el objeto de tipo, tiene las siguientes propiedades:
| Nombre | firma de | Descripción |
| nombre | Propiedad | Devuelve el nombre del tipo. |
| size | Propiedad | Devuelve el tamaño del tipo como un valor de 64 bits. |
| typeKind | Propiedad | Devuelve la categoría del tipo como una cadena. Puede ser uno de los siguientes valores: "udt", "pointer", "memberPointer", "array", "function", "typedef", "enum" o "intrinsic". |
| tipo base | Propiedad | Devuelve un objeto de tipo para el tipo en el que se basa este tipo. Esto no representa la herencia de C++. Para un tipo de puntero, este es el tipo del elemento al que apunta. Para un tipo de matriz, este es el tipo contenido en la matriz. |
| Campos | Propiedad | Devuelve un objeto que tiene todos los campos con nombre del tipo accesible como propiedades con nombre. El valor de cada propiedad es un objeto de campo como se describe a continuación. |
| baseClasses | Propiedad | Devuelve una matriz de todas las clases base inmediatas del tipo. Cada objeto de la matriz es un objeto de clase base como se describe a continuación. |
| functionReturnType | Propiedad | Para los tipos de función, devuelve un objeto de tipo que representa el tipo de valor devuelto de la función. |
| tiposDeParámetroDeFunción | Propiedad | Para los tipos de función, devuelve una matriz de objetos de tipo que representan los tipos de parámetro de la función. |
| convenciónDeLlamadoDeFunción | Propiedad | En el caso de los tipos de función, devuelve la convención de llamada de la función como una cadena. Puede ser uno de los siguientes valores: "unknown", "__cdecl", "fastcall", "stdcall" o "thiscall". |
| pointerKind | Propiedad | Para los tipos de puntero, esto devuelve el tipo de puntero como una cadena de texto. Puede ser uno de los siguientes valores: "standard", "reference", "rValueReference" o "cxHat". |
| memberType | Propiedad | Para los tipos de puntero que son punteros de miembro, devuelve un objeto de tipo que representa la clase miembro. |
| esGenérico | Propiedad | Devuelve si el tipo es genérico o no. Esto devolverá true para los tipos de plantilla. |
| argumentos genéricos | Propiedad | Para los tipos que son genéricos, devolverá una matriz de argumentos genéricos. Estos argumentos pueden ser argumentos de tipo o pueden ser valores constantes. |
| isBitField | Propiedad | Devuelve si el almacenamiento del tipo es un campo de bits o no. |
| bitFieldPositions | Propiedad | Para los tipos que representan el almacenamiento de campo de bits, devolverá un tipo de descripción de campo de bits que indica las posiciones del campo de bits. |
Todas estas entradas están presentes durante la inicialización de la fase 2.
Objetos de campo
Cada campo dentro de un tipo se describe mediante un objeto de campo que tiene propiedades de la siguiente manera:
| Nombre | firma de | Descripción |
| nombre | Propiedad | Devuelve el nombre del campo. |
| tipo | Propiedad | Devuelve un objeto de tipo que representa el tipo estático del campo. |
| locationKind | Propiedad | Devuelve el tipo de ubicación (almacenamiento) para el campo como una cadena. Puede ser uno de los siguientes valores: "member", "static", "constant" o "none". |
| compensar | Propiedad | Para los campos que tienen un tipo de ubicación que indica un desplazamiento (por ejemplo, "miembro"), devuelve el desplazamiento del campo dentro de su tipo contenedor como un valor de 64 bits. |
| ubicación | Propiedad | Para los campos que tienen un tipo de ubicación que indica una ubicación (por ejemplo, "estática"), devuelve la ubicación del campo como un objeto de ubicación. |
| valor | Propiedad | Para los campos que tienen un tipo de ubicación que indica un valor (por ejemplo, "constante"), devuelve el valor del campo. |
Todas estas entradas están presentes durante la inicialización de la fase 2.
Objetos de clase base
Cada clase base dentro de un tipo se describe mediante un objeto de clase base que tiene propiedades de la siguiente manera:
| Nombre | firma de | Descripción |
| nombre | Propiedad | Devuelve el nombre de la clase base. |
| compensar | Propiedad | Devuelve el desplazamiento de esta clase base en su tipo que lo contiene. |
| tipo | Propiedad | Devuelve un objeto de tipo que representa el tipo estático de la clase base. |
Todas estas entradas están presentes durante la inicialización de la fase 2.
Ejemplo de código
Para obtener un ejemplo de código, consulte el script de ImageInfo.js. Para obtener más información sobre los ejemplos de código, consulte Scripts de ejemplo del depurador de 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);
Consulte también
objetos de depurador nativo en extensiones de JavaScript
Objetos de depurador nativo en extensiones de JavaScript: consideraciones de diseño y pruebas