Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os objetos nativos do depurador representam várias construções do ambiente do depurador. As extensões JavaScript têm acesso direto ao sistema de tipos da linguagem subjacente. Este acesso é expresso através da noção de objetos tipo. Este tópico descreve as propriedades associadas a objetos de tipo.
Os objetos nativos do depurador representam várias construções e comportamentos do ambiente do depurador. Os objetos podem ser passados para (ou adquiridos em) extensões JavaScript para manipular o estado do depurador.
Para obter informações sobre extensões JavaScript de objeto de depurador, consulte Objetos de depurador nativos em extensões JavaScript.
Para obter informações gerais sobre como trabalhar com JavaScript, consulte JavaScript Debugger Scripting.
Objetos de tipo
Um objeto de tipo pode ser adquirido de várias maneiras:
- De um objeto: Se um script tiver um objeto nativo em JavaScript, a propriedade targetType poderá ser acessada nesse objeto para obter um objeto type que represente o tipo estático do objeto nativo.
- Do Host: A API host.getModuleType pode ser chamada para retornar o objeto de tipo para qualquer tipo definido num módulo específico.
Uma vez que o objeto de tipo é adquirido, ele tem as seguintes propriedades:
| Nome | Assinatura | Descrição |
| nome | Propriedade | Retorna o nome do tipo. |
| tamanho | Propriedade | Retorna o tamanho do tipo como um valor de 64 bits. |
| tipoTipo | Propriedade | Retorna o tipo de dados como uma cadeia de caracteres. Este pode ser um dos seguintes valores: "udt", "pointer", "memberPointer", "array", "function", "typedef", "enum" ou "intrínseco". |
| Tipo base | Propriedade | Retorna um objeto type para o tipo no qual esse tipo se baseia. Isto não representa a herança de C++. Para um tipo de ponteiro, este é o tipo do elemento para o qual aponta. Para um tipo de matriz, este é o tipo contido na matriz. |
| campos | Propriedade | Retorna um objeto que tem todos os campos nomeados do tipo acessíveis como propriedades nomeadas. O valor de cada propriedade é um objeto de campo conforme descrito abaixo. |
| ClassesBase | Propriedade | Retorna uma matriz de todas as classes base imediatas do tipo. Cada objeto na matriz é um objeto de classe base , conforme descrito abaixo. |
| tipoDeRetornoDaFunção | Propriedade | Para tipos de função, isso retorna um objeto type que representa o tipo de retorno da função. |
| TiposDeParâmetrosDeFunção | Propriedade | Para tipos de função, isso retorna uma matriz de objetos de tipo que representam os tipos de parâmetro da função. |
| convenção de chamada de função | Propriedade | Para tipos de função, isso retorna a convenção de chamada da função como uma cadeia de caracteres. Este pode ser um dos seguintes valores: "unknown", "__cdecl", "fastcall", "stdcall" ou "thiscall". |
| tipo de ponteiro | Propriedade | Para tipos de ponteiro, isso retorna o tipo de ponteiro como uma cadeia de caracteres. Este pode ser um dos seguintes valores: "standard", "reference", "rValueReference" ou "cxHat". |
| Tipo de membro | Propriedade | Para tipos de ponteiro que são ponteiros de membro, isso retorna um objeto de tipo que representa a classe de membro. |
| isGeneric | Propriedade | Retorna se o tipo é genérico ou não. Isso retornará verdadeiro para tipos de modelo. |
| argumentosGenéricos | Propriedade | Para tipos que são genéricos, isso retornará uma matriz de argumentos genéricos. Tais argumentos podem ser argumentos de tipo ou podem ser valores constantes. |
| isBitField | Propriedade | Indica se o armazenamento para o tipo é um campo de bits ou não. |
| bitFieldPositions | Propriedade | Para tipos que representam o armazenamento de campo de bits, isso retornará um tipo de descrição de campo de bits indicando as posições do campo de bits. |
Todas essas entradas estão presentes durante a inicialização da fase 2.
Objetos de campo
Cada campo dentro de um tipo é descrito por um objeto de campo com propriedades da seguinte maneira:
| Nome | Assinatura | Descrição |
| nome | Propriedade | Retorna o nome do campo. |
| tipo | Propriedade | Retorna um objeto type que representa o tipo estático do campo. |
| LocalizaçãoTipo | Propriedade | Retorna o tipo de local (armazenamento) para o campo como uma cadeia de caracteres. Este pode ser um dos seguintes valores: "membro", "estático", "constante" ou "nenhum". |
| Compensação | Propriedade | Para campos que têm um tipo de localização que indica um deslocamento (por exemplo, "membro"), isto retorna o deslocamento do campo dentro do seu tipo de contenção, como um valor de 64 bits. |
| localização | Propriedade | Para campos que têm um tipo de local que indica um local (por exemplo: "estático"), isso retorna o local do campo como um objeto de local. |
| valor | Propriedade | Para campos que têm um tipo de local que indica um valor (por exemplo: "constante"), isso retorna o valor do campo. |
Todas essas entradas estão presentes durante a inicialização da fase 2.
Objetos de classe base
Cada classe base dentro de um tipo é descrita por um objeto de classe base com propriedades da seguinte maneira:
| Nome | Assinatura | Descrição |
| nome | Propriedade | Retorna o nome da classe base. |
| Compensação | Propriedade | Retorna o deslocamento desta classe base dentro do seu tipo que a contém. |
| tipo | Propriedade | Retorna um objeto type que representa o tipo estático da classe base. |
Todas essas entradas estão presentes durante a inicialização da fase 2.
Exemplo de código
Para obter um exemplo de código, consulte o script ImageInfo.js. Para mais informações sobre amostras de código, consulte Scripts de exemplo do Debugger 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);
Ver também
objetos depuradores nativos em extensões JavaScript
Objetos de depurador nativos em extensões JavaScript - Considerações de design e teste
Depuração com Script em JavaScript
Scripts de exemplo do depurador JavaScript