Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Nativní objekty ladicího programu představují různé konstrukce prostředí ladicího programu. Rozšíření JavaScriptu mají přímý přístup k systému typů základního jazyka. Tento přístup je vyjádřen pomocí pojmu objekty typu. Toto téma popisuje vlastnosti přidružené k objektům typu.
Nativní objekty ladicího programu představují různé konstrukty a chování prostředí ladicího programu. Objekty lze předat (nebo získat v) javascriptových rozšířeních pro manipulaci se stavem ladicího programu.
Informace o rozšíření javascriptového objektu ladicího programu naleznete v tématu Nativní objekty ladicího programu v rozšířeních Jazyka JavaScript.
Obecné informace o práci s JavaScriptem najdete v tématu Skriptování ladicího programu JavaScriptu.
Objekty typu
Objekt typu lze získat několika způsoby:
- Z objektu: Pokud skript má nativní objekt v JavaScriptu, lze k objektu targetType přistupovat za účelem získání objektu typu představujícího statický typ nativního objektu.
- Z hostitele: Rozhraní API host.getModuleType lze volat, aby se vrátil objekt typu pro libovolný typ definovaný v určitém modulu.
Po získání objektu typu má následující vlastnosti:
| název | Podpis | Description |
| název | Vlastnictví | Vrátí název typu. |
| velikost | Vlastnictví | Vrátí velikost typu jako 64bitovou hodnotu. |
| typeKind | Vlastnictví | Vrátí typ typu jako řetězec. Může to být jedna z následujících hodnot: "udt", "pointer", "memberPointer", "array", "function", "typedef", "enum" nebo "vnitřní". |
| základní typ | Vlastnictví | Vrátí objekt typu pro typ, na kterém je tento typ založen. To nepředstavuje dědičnost jazyka C++. U typu ukazatele je to typ věci, na kterou odkazuje. U typu pole se jedná o typ obsažený v poli. |
| pole | Vlastnictví | Vrátí objekt, který má všechna pojmenovaná pole typu přístupná jako pojmenované vlastnosti. Hodnota každé vlastnosti je objekt pole , jak je popsáno níže. |
| baseClasses | Vlastnictví | Vrátí pole všech přímých základních tříd typu. Každý objekt v poli je objekt základní třídy , jak je popsáno níže. |
| functionReturnType | Vlastnictví | U typů funkcí vrátí objekt typu představující návratový typ funkce. |
| typy parametrů funkce | Vlastnictví | U typů funkcí vrátí pole objektů typu představujících typy parametrů funkce. |
| konvenceVoláníFunkce | Vlastnictví | U typů funkcí vrátí volací konvenci funkce jako řetězec. Může to být jedna z následujících hodnot: "unknown", "__cdecl", "fastcall", "stdcall" nebo "thiscall". |
| pointerKind | Vlastnictví | U typů ukazatelů toto vrátí druh ukazatele ve formě řetězce. Může to být jedna z následujících hodnot: "standard", "reference", "rValueReference" nebo "cxHat". |
| typ člena | Vlastnictví | U typů ukazatelů, které jsou členskými ukazateli, vrátí objekt typu představující třídu členu. |
| isGeneric | Vlastnictví | Vrátí, zda je typ obecný, nebo ne. To vrátí hodnotu true pro typy šablon. |
| obecné argumenty | Vlastnictví | U typů, které jsou obecné, vrátí pole obecných argumentů. Tyto argumenty mohou být argumenty typu nebo můžou být konstantními hodnotami. |
| isBitField | Vlastnictví | Vrátí, zda je úložiště pro typ bitové pole, nebo ne. |
| bitFieldPositions | Vlastnictví | U typů, které představují úložiště bitových polí, vrátí popis typu bitového pole označující pozice bitového pole. |
Všechny tyto položky jsou přítomny během inicializace fáze 2.
Objektová pole
Každé pole v rámci typu je popsáno objektem pole s vlastnostmi následujícím způsobem:
| název | Podpis | Description |
| název | Vlastnictví | Vrátí název pole. |
| typ | Vlastnictví | Vrátí objekt typu představující statický typ pole. |
| locationKind | Vlastnictví | Vrátí typ umístění (úložiště) pro pole jako řetězec. Může to být jedna z následujících hodnot: "member", "static", "constant" nebo "none". |
| posun | Vlastnictví | U polí, která mají druh umístění, který označuje posun (např. "člen"), vrátí posun pole v rámci jeho typu jako 64bitovou hodnotu. |
| poloha | Vlastnictví | Pro pole, která mají druh umístění, který označuje umístění (např. "static"), vrátí se umístění pole jako objekt umístění. |
| hodnota | Vlastnictví | Pro pole, která mají druh umístění, který označuje hodnotu (např. "konstanta"), vrátí hodnotu pole. |
Všechny tyto položky jsou přítomny během inicializace fáze 2.
Objekty základní třídy
Každá základní třída v rámci typu je popsána objektem základní třídy, který má vlastnosti následujícím způsobem:
| název | Podpis | Description |
| název | Vlastnictví | Vrátí název základní třídy. |
| posun | Vlastnictví | Vrátí posun této základní třídy v rámci typu, který ji obsahuje. |
| typ | Vlastnictví | Vrátí objekt typu představující statický typ základní třídy. |
Všechny tyto položky jsou přítomny během inicializace fáze 2.
Příklad kódu
Příklad kódu najdete v ImageInfo.js skriptu. Další informace o ukázkách kódu najdete v tématu Ukázkové skripty ladicího programu Jazyka 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);
Viz také
nativní objekty ladicího programu v rozšířeních JavaScriptu
Nativní objekty ladicího programu v rozšířeních JavaScriptu – Aspekty návrhu a testování