Megosztás a következőn keresztül:


Natív hibakereső objektumok JavaScript-bővítményekben – Objektumok beírása

A natív hibakereső objektumok a hibakereső környezet különböző szerkezeteit jelölik. A JavaScript-bővítmények közvetlen hozzáféréssel rendelkeznek az alapul szolgáló nyelv típusrendszeréhez. Ezt a hozzáférést a típusobjektumok fogalma fejezi ki. Ez a témakör a típusobjektumokhoz társított tulajdonságokat ismerteti.

A natív hibakereső objektumok a hibakereső környezet különböző szerkezeteit és viselkedését jelölik. Az objektumok átadhatók (vagy beszerezhetők) JavaScript-bővítményekbe a hibakereső állapotának módosításához.

A Hibakereső objektum JavaScript-bővítményeiről további információt a JavaScript-bővítmények natív hibakereső objektumai című témakörben talál.

A JavaScript használatával kapcsolatos általános információkért tekintse meg a JavaScript Hibakereső szkriptkészítés című témakört.

Típus objektumok

A típusobjektumok többféleképpen is beszerezhetők:

  • Objektumból: Ha egy szkript rendelkezik natív objektummal a JavaScripten belül, a targetType tulajdonság elérhető az objektumon a natív objektum statikus típusát képviselő típusobjektum lekéréséhez.
  • A gazdagéptől: A host.getModuleType API meghívható úgy, hogy bármely megadott modulban definiált típusobjektum-ot visszaadja.

A típusobjektum beszerzése után a következő tulajdonságokkal rendelkezik:

Név Aláírás Leírás
névIngatlanA típus nevét adja vissza.
méretIngatlanA típus méretét adja vissza 64 bites értékként.
typeKindIngatlanA típus típusát sztringként adja vissza. Ez a következő értékek egyike lehet: "udt", "pointer", "memberPointer", "array", "function", "typedef", "enum" vagy "intrinsic".
baseTypeIngatlanEgy típusobjektumot ad vissza annak a típusnak, amelyen ez a típus alapul. Ez nem c++ öröklést jelent. Mutatótípus esetén ez annak a dolognak a típusa, amire mutat. Tömbtípus esetén ez a tömbben található típus.
MezőkIngatlanEgy objektumot ad vissza, amely a típus összes elnevezett mezőjét elnevezett tulajdonságként teszi elérhetővé. Az egyes tulajdonságok értéke egy mezőobjektum az alábbiak szerint.
alaposztályokIngatlanA típus minden közvetlen alaposztályát visszaadja tömb formájában. A tömb minden objektuma egy alaposztály-objektum az alábbiak szerint.
függvényVisszatérésiTípusIngatlanFüggvénytípusok esetén ez a függvény visszatérési típusát képviselő típusobjektumot ad vissza.
functionParameterTypesIngatlanFüggvénytípusok esetén ez a függvény paramétertípusait képviselő típusobjektum-tömböt ad vissza.
függvényhívási konvencióIngatlanFüggvénytípusok esetén ez a függvény hívási konvencióját adja vissza sztringként. Ez a következő értékek egyike lehet: "ismeretlen", "__cdecl", "fastcall", "stdcall" vagy "thiscall".
pointerKindIngatlanA mutatótípusok esetében ez sztringként adja vissza a mutató típusát. Ez a következő értékek egyike lehet: "standard", "reference", "rValueReference" vagy "cxHat".
memberTypeIngatlanTagmutatónak szánt mutatótípusok esetén ez egy tagosztályt képviselő típusobjektumot ad vissza.
isGenericIngatlanAzt adja vissza, hogy a típus általános-e vagy sem. Ez a sablontípusok esetében igaz értéket ad vissza.
általános érvekIngatlanAz általános típusok esetében ez általános argumentumok tömbét adja vissza. Az ilyen argumentumok lehetnek típusargumentumok vagy állandó értékek.
isBitFieldIngatlanAzt adja vissza, hogy a típus tárolója bitmező-e vagy sem.
bitmező-pozíciókIngatlanA bitmezős tárolást képviselő típusok esetében ez egy bitmező leírási típusát adja vissza, amely a bitmező pozícióit jelzi.

Ezek a bejegyzések a 2. fázis inicializálása során jelennek meg.

Mezőobjektumok

A típuson belüli mezőket egy mezőobjektum írja le, amelynek tulajdonságai a következők:

Név Aláírás Leírás
névIngatlanA mező nevét adja vissza.
típusIngatlanA mező statikus típusát képviselő típusobjektumot ad vissza.
helytípusIngatlanSztringként adja vissza a mező helytípusát (tárhelyét). Ez a következő értékek egyike lehet: "tag", "static", "constant" vagy "none".
eltolásIngatlanA hely típusú mezők esetében, amelyek eltolást jeleznek (pl. "tag"), ez 64 bites értékként adja vissza a mező eltolását a benne lévő típuson belül.
helyIngatlanOlyan mezők esetében, amelyek hely típusúak, és egy helyet jelölnek (például "statikus"), ez a mező helyét adja vissza helyobjektumként.
értékIngatlanA hely típusú mezők esetében, amelyek egy értéket jeleznek (pl. "állandó"), ez a mező értékét adja vissza.

Ezek a bejegyzések a 2. fázis inicializálása során jelennek meg.

Alaposztály-objektumok

Egy típus minden alaposztályát egy alaposztály-objektum írja le, amelynek tulajdonságai a következők:

Név Aláírás Leírás
névIngatlanAz alaposztály nevét adja vissza.
eltolásIngatlanEnnek az alaposztálynak az eltolását adja vissza a benne található típuson belül.
típusIngatlanAz alaposztály statikus típusát képviselő típusobjektumot ad vissza.

Ezek a bejegyzések a 2. fázis inicializálása során jelennek meg.

Kódpélda

Egy példakódért tekintse meg a ImageInfo.js szkriptet. A kódmintákról további információt a JavaScript Hibakereső példaszkriptjei című témakörben talál.

// 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);

Lásd még:

JavaScript-bővítmények natív hibakereső objektumai

Natív hibakereső objektumok JavaScript-bővítményekben – Tervezési és tesztelési szempontok

JavaScript-hibakereső szkriptelése

JavaScript-hibakereső példaszkriptjei