Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Gli oggetti debugger nativi rappresentano vari costrutti dell'ambiente del debugger. Le estensioni JavaScript hanno accesso diretto al sistema di tipi del linguaggio sottostante. Questo accesso viene espresso tramite il concetto di oggetti di tipo. In questo argomento vengono descritte le proprietà associate agli oggetti di tipo.
Gli oggetti debugger nativi rappresentano vari costrutti e comportamenti dell'ambiente del debugger. Gli oggetti possono essere passati o acquisiti nelle estensioni JavaScript per modificare lo stato del debugger.
Per informazioni sulle estensioni JavaScript dell'oggetto Debugger, vedere Oggetti debugger nativi nelle estensioni JavaScript.
Per informazioni generali sull'uso di JavaScript, vedere Scripting del debugger JavaScript.
Oggetti tipo
Un oggetto di tipo può essere acquisito in diversi modi:
- Da un oggetto Object: se uno script ha un oggetto nativo in JavaScript, è possibile accedere alla proprietà targetType su tale oggetto per ottenere un oggetto di tipo che rappresenta il tipo statico dell'oggetto nativo.
- Dall'host: l'API host.getModuleType può essere chiamata per restituire l'oggetto tipo per qualsiasi tipo definito in un modulo specifico.
Dopo aver acquisito l'oggetto di tipo, ha le proprietà seguenti:
| Nome | firma | Descrizione |
| nome | Proprietà | Restituisce il nome del tipo. |
| dimensione / taglia | Proprietà | Restituisce le dimensioni del tipo come valore a 64 bit. |
| typeKind | Proprietà | Restituisce il tipo di tipo come stringa. Può trattarsi di uno dei valori seguenti: "udt", "puntatore", "memberPointer", "array", "funzione", "typedef", "enum" o "intrinseco". |
| baseType | Proprietà | Restituisce un oggetto tipo per il tipo su cui si basa questo tipo. Questo non rappresenta l'ereditarietà C++. Per un tipo di puntatore, questo è il tipo dell'elemento a cui punta. Per un tipo di matrice, si tratta del tipo contenuto nella matrice. |
| Campi | Proprietà | Restituisce un oggetto che ha tutti i campi di tipo nominati accessibili come proprietà nominate. Il valore di ogni proprietà è un oggetto campo come descritto di seguito. |
| baseClasses | Proprietà | Restituisce una matrice di tutte le classi di base immediate del tipo. Ogni oggetto nella matrice è un oggetto classe di base , come descritto di seguito. |
| functionReturnType | Proprietà | Per i tipi di funzione, restituisce un oggetto di tipo che rappresenta il tipo restituito della funzione. |
| tipiDiParametriDellaFunzione | Proprietà | Per i tipi di funzione, restituisce una matrice di oggetti di tipo che rappresentano i tipi di parametro della funzione. |
| convenzioneDiChiamataFunzione | Proprietà | Per i tipi di funzione, restituisce la convenzione di chiamata della funzione come stringa. Può trattarsi di uno dei valori seguenti: "unknown", "__cdecl", "fastcall", "stdcall" o "thiscall". |
| pointerKind | Proprietà | Per i tipi di puntatore, viene restituito il tipo di puntatore come stringa. Può trattarsi di uno dei valori seguenti: "standard", "reference", "rValueReference" o "cxHat". |
| memberType | Proprietà | Per i tipi di puntatori che sono puntatori a membri di classe, questo restituisce un oggetto di tipo che rappresenta la classe membro. |
| isGeneric | Proprietà | Restituisce un valore che indica se il tipo è generico o meno. Verrà restituito true per i tipi di modello. |
| argomentiGenerici | Proprietà | Per i tipi generici, verrà restituita una matrice di argomenti generici. Tali argomenti possono essere tipi di argomento o valori costanti. |
| isBitField | Proprietà | Restituisce un valore che indica se l'archiviazione per il tipo è un campo di bit o meno. |
| bitFieldPositions | Proprietà | Per i tipi che rappresentano l'archiviazione del campo di bit, verrà restituito un tipo di descrizione del campo di bit che indica le posizioni del campo di bit. |
Tutte queste voci sono presenti durante l'inizializzazione della fase 2.
Oggetti del Campo
Ogni campo all'interno di un tipo viene descritto da un oggetto campo con proprietà come indicato di seguito:
| Nome | firma | Descrizione |
| nome | Proprietà | Restituisce il nome del campo. |
| tipo | Proprietà | Restituisce un oggetto type che rappresenta il tipo statico del campo. |
| tipo di localizzazione | Proprietà | Restituisce il tipo di posizione (archiviazione) per il campo come stringa. Può trattarsi di uno dei valori seguenti: "member", "static", "constant" o "none". |
| offset | Proprietà | Per i campi con un tipo di localizzazione che indica un offset, ad esempio "membro", questo restituisce l'offset del campo all'interno del tipo contenitore come valore a 64 bit. |
| ubicazione | Proprietà | Per i campi con un tipo di posizione che indica una posizione, ad esempio "statica", restituisce la posizione del campo come oggetto posizione. |
| valore | Proprietà | Per i campi con un tipo di posizione che indica un valore , ad esempio "constant", restituisce il valore del campo. |
Tutte queste voci sono presenti durante l'inizializzazione della fase 2.
Oggetti classe base
Ogni classe base all'interno di un tipo è descritta da un oggetto classe di base con proprietà come indicato di seguito:
| Nome | firma | Descrizione |
| nome | Proprietà | Restituisce il nome della classe di base. |
| offset | Proprietà | Restituisce l'offset di questa classe di base nel tipo che lo contiene. |
| tipo | Proprietà | Restituisce un oggetto di tipo che rappresenta il tipo statico della classe base. |
Tutte queste voci sono presenti durante l'inizializzazione della fase 2.
Esempio di codice
Per un esempio di codice, vedere lo script ImageInfo.js. Per altre informazioni sugli esempi di codice, vedere Script di esempio del 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);
Vedere anche
oggetti debugger nativi nelle estensioni JavaScript
Oggetti debugger nativi nelle estensioni JavaScript - Considerazioni sulla progettazione e sul test