Sdílet prostřednictvím


Nativní objekty ladicího programu v rozšířeních JavaScriptu – objekty typu

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ázevVlastnictvíVrátí název typu.
velikostVlastnictvíVrátí velikost typu jako 64bitovou hodnotu.
typeKindVlastnictví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í typVlastnictví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.
poleVlastnictví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.
baseClassesVlastnictví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.
functionReturnTypeVlastnictvíU typů funkcí vrátí objekt typu představující návratový typ funkce.
typy parametrů funkceVlastnictvíU typů funkcí vrátí pole objektů typu představujících typy parametrů funkce.
konvenceVoláníFunkceVlastnictví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".
pointerKindVlastnictví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 členaVlastnictvíU typů ukazatelů, které jsou členskými ukazateli, vrátí objekt typu představující třídu členu.
isGenericVlastnictvíVrátí, zda je typ obecný, nebo ne. To vrátí hodnotu true pro typy šablon.
obecné argumentyVlastnictví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.
isBitFieldVlastnictvíVrátí, zda je úložiště pro typ bitové pole, nebo ne.
bitFieldPositionsVlastnictví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ázevVlastnictvíVrátí název pole.
typVlastnictvíVrátí objekt typu představující statický typ pole.
locationKindVlastnictví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".
posunVlastnictví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.
polohaVlastnictví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í.
hodnotaVlastnictví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ázevVlastnictvíVrátí název základní třídy.
posunVlastnictvíVrátí posun této základní třídy v rámci typu, který ji obsahuje.
typVlastnictví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í

Skriptování ladicího programu JavaScriptu

Ukázkové skripty ladicího programu JavaScriptu