Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Systeemeigen foutopsporingsprogrammaobjecten vertegenwoordigen verschillende constructies van de foutopsporingsprogrammaomgeving. JavaScript-extensies hebben directe toegang tot het type systeem van de onderliggende taal. Deze toegang wordt uitgedrukt via het begrip van typeobjecten. In dit onderwerp worden de eigenschappen beschreven die zijn gekoppeld aan typeobjecten.
Systeemeigen foutopsporingsprogrammaobjecten vertegenwoordigen verschillende constructies en gedrag van de foutopsporingsprogramma-omgeving. De objecten kunnen worden doorgegeven aan (of verkregen in) JavaScript-extensies om de status van het foutopsporingsprogramma te manipuleren.
Zie JavaScript Debugger Scripting voor algemene informatie over het werken met JavaScript.
Typeobjecten
Een typeobject kan op verschillende manieren worden verkregen:
- Vanuit een object: Als een script een systeemeigen object heeft in JavaScript, kan de eigenschap targetType op dat object worden geopend om een typeobject op te halen dat het statische type van het systeemeigen object vertegenwoordigt.
- Vanaf de host: de host.getModuleType-API kan worden aangeroepen om het typeobject te retourneren voor elk type dat in een bepaalde module is gedefinieerd.
Zodra het typeobject is verkregen, heeft het de volgende eigenschappen:
| Naam | handtekening | Beschrijving |
| naam | Vastgoed | Retourneert de naam van het type. |
| grootte | Vastgoed | Retourneert de grootte van het type als een 64-bits waarde. |
| typeKind | Vastgoed | Geeft de soort van het type als tekenreeks terug. Dit kan een van de volgende waarden zijn: "udt", "pointer", "memberPointer", "array", "function", "typedef", "enum" of "intrinsiek". |
| baseType | Vastgoed | Retourneert een typeobject voor het type waarop dit type is gebaseerd. Dit vertegenwoordigt geen C++-overname. Voor een aanwijzer type is dit het type waarnaar het verwijst. Voor een matrixtype is dit het type in de matrix. |
| Velden | Vastgoed | Retourneert een object met alle benoemde velden van het type, toegankelijk als eigenschappen. De waarde van elke eigenschap is een veldobject zoals hieronder wordt beschreven. |
| basisKlassen | Vastgoed | Retourneert een matrix van alle directe basisklassen van het type. Elk object in de matrix is een basisklasseobject , zoals hieronder wordt beschreven. |
| functionReturnType | Vastgoed | Voor functietypen retourneert dit een typeobject dat het retourtype van de functie vertegenwoordigt. |
| functionParameterTypes | Vastgoed | Voor functietypen retourneert dit een matrix van typeobjecten die de parametertypen van de functie vertegenwoordigen. |
| functionCallingConvention | Vastgoed | Voor functietypen retourneert dit de aanroepende conventie van de functie als een tekenreeks. Dit kan een van de volgende waarden zijn: 'onbekend', '__cdecl', 'fastcall', 'stdcall' of 'thiscall'. |
| pointerKind | Vastgoed | Voor aanwijzertypen retourneert dit het type aanwijzer als een tekenreeks. Dit kan een van de volgende waarden zijn: 'standard', 'reference', 'rValueReference' of 'cxHat'. |
| lidtype | Vastgoed | Voor aanwijzertypen die lidpointers zijn, retourneert dit een typeobject dat de lidklasse vertegenwoordigt. |
| isGeneric | Vastgoed | Geeft als resultaat of het type algemeen is of niet. Dit keert terug waar voor sjabloontypen. |
| generiekeArgumenten | Vastgoed | Voor typen die algemeen zijn, retourneert dit een matrix met algemene argumenten. Dergelijke argumenten kunnen typeargumenten zijn of constante waarden zijn. |
| isBitField | Vastgoed | Retourneert of de opslag voor het type een bitveld is of niet. |
| bitFieldPositions | Vastgoed | Voor typen die bitfieldopslag vertegenwoordigen, retourneert dit een beschrijvingstype voor bitvelden dat de posities van het bitveld aangeeft. |
Al deze vermeldingen zijn aanwezig tijdens de initialisatie van fase 2.
Veldobjecten
Elk veld binnen een type wordt als volgt beschreven door een veldobject met eigenschappen:
| Naam | handtekening | Beschrijving |
| naam | Vastgoed | Retourneert de naam van het veld. |
| soort | Vastgoed | Retourneert een typeobject dat het statische type van het veld vertegenwoordigt. |
| locationKind | Vastgoed | Retourneert het locatietype (opslag) voor het veld als een tekenreeks. Dit kan een van de volgende waarden zijn: 'member', 'static', 'constant' of 'none'. |
| offset | Vastgoed | Voor velden met een locatietype dat een offset aangeeft (bijvoorbeeld : 'lid'), retourneert dit de verschuiving van het veld binnen het bijbehorende type als een 64-bits waarde. |
| locatie | Vastgoed | Voor velden met een locatietype dat een locatie aangeeft (bijvoorbeeld : 'statisch'),retourneert dit de locatie van het veld als een locatieobject. |
| waarde | Vastgoed | Voor velden met een locatietype dat een waarde aangeeft (bijvoorbeeld : 'constant'), geeft dit de waarde van het veld als resultaat. |
Al deze vermeldingen zijn aanwezig tijdens de initialisatie van fase 2.
Basisklasseobjecten
Elke basisklasse binnen een type wordt als volgt beschreven door een basisklasseobject met eigenschappen:
| Naam | handtekening | Beschrijving |
| naam | Vastgoed | Retourneert de naam van de basisklasse. |
| offset | Vastgoed | Retourneert de offset van deze basisklasse binnen het bijbehorende type. |
| soort | Vastgoed | Retourneert een typeobject dat het statische type van de basisklasse vertegenwoordigt. |
Al deze vermeldingen zijn aanwezig tijdens de initialisatie van fase 2.
Codevoorbeeld
Zie het ImageInfo.js script voor een codevoorbeeld. Zie Voorbeeldscripts voor JavaScript-foutopsporingsprogramma's voor meer informatie over codevoorbeelden.
// 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);
Zie ook
Systeemeigen Debugger-objecten in JavaScript-extensies
Systeemeigen foutopsporingsprogrammaobjecten in JavaScript-extensies - Ontwerp- en testoverwegingen