Interna felsökningsobjekt i JavaScript-tillägg – Typobjekt

Interna felsökningsobjekt representerar olika konstruktioner av felsökningsmiljön. JavaScript-tillägg har direkt åtkomst till det underliggande språkets typsystem. Den här åtkomsten uttrycks genom begreppet typobjekt. I det här avsnittet beskrivs de egenskaper som är associerade med typobjekt.

Interna felsökningsobjekt representerar olika konstruktioner och beteenden i felsökningsmiljön. Objekten kan skickas till (eller hämtas i) JavaScript-tillägg för att ändra tillståndet för felsökningsprogrammet.

Information om JavaScript-tillägg för felsökningsobjekt finns i Interna felsökningsobjekt i JavaScript-tillägg.

Allmän information om hur du arbetar med JavaScript finns i Skript för JavaScript-felsökningsprogram.

Skriv objekt

Ett typobjekt kan hämtas på flera olika sätt:

  • Från ett objekt: Om ett skript har ett internt objekt i JavaScript kan egenskapen targetType nås på objektet för att hämta ett typobjekt som representerar den statiska typen av det inbyggda objektet.
  • Från värden: API:et host.getModuleType kan anropas för att returnera ett typobjekt för vilket typ som helst definierad i en specifik modul.

När typobjektet har hämtats har det följande egenskaper:

Namn Underskrift Beskrivning
namnFastighetReturnerar namnet på typen.
storlekFastighetReturnerar storleken på typen som ett 64-bitars värde.
typeKindFastighetReturnerar typen av typ som en sträng. Detta kan vara något av följande värden: "udt", "pekare", "memberPointer", "array", "function", "typedef", "enum" eller "intrinsic".
basTypFastighetReturnerar ett typobjekt för den typ som den här typen baseras på. Detta representerar inte C++-arv. För en pekartyp är detta den typ av sak som pekas på. För en matristyp är detta den typ som finns i matrisen.
FältFastighetReturnerar ett objekt som har alla namngivna fält av typen som är tillgängliga som namngivna egenskaper. Värdet för varje egenskap är ett fältobjekt enligt beskrivningen nedan.
baseClassesFastighetReturnerar en matris med alla omedelbara basklasser av typen. Varje objekt i matrisen är ett basklassobjekt enligt beskrivningen nedan.
functionReturnTypeFastighetFör funktionstyper returnerar detta ett typobjekt som representerar funktionens returtyp.
funktionsParametertyperFastighetFör funktionstyper returnerar detta en matris med typobjekt som representerar funktionens parametertyper.
funktionsanropskonventionFastighetFör funktionstyper returnerar detta anropande konvention för funktionen som en sträng. Detta kan vara något av följande värden: "unknown", "__cdecl", "fastcall", "stdcall" eller "thiscall".
pointerKindFastighetFör pekartyper returnerar detta typen av pekare som en sträng. Detta kan vara något av följande värden: "standard", "reference", "rValueReference" eller "cxHat".
memberTypeFastighetFör pekartyper som är medlemspekare returnerar detta ett typobjekt som representerar medlemsklassen.
ärGeneriskFastighetReturnerar om typen är generisk eller inte. Detta kommer att returnera sant för malltyper.
genericArgumentsFastighetFör typer som är generiska returnerar detta en matris med generiska argument. Sådana argument kan vara typargument eller vara konstanta värden.
isBitFieldFastighetReturnerar om lagringen för typen är ett bitfält eller inte.
bitfältspositionerFastighetFör typer som representerar bitfältslagring returnerar detta en bitfältsbeskrivningstyp som anger positionerna för bitfältet.

Alla dessa poster finns under fas 2-initieringen.

Fältobjekt

Varje fält inom en typ beskrivs av ett fältobjekt som har följande egenskaper:

Namn Underskrift Beskrivning
namnFastighetReturnerar namnet på fältet.
typFastighetReturnerar ett typobjekt som representerar fältets statiska typ.
locationKindFastighetReturnerar platstypen (lagring) för fältet som en sträng. Detta kan vara något av följande värden: "member", "static", "constant" eller "none".
förskjutaFastighetFör fält som har en platstyp som anger en förskjutning (t.ex. "medlem") returnerar detta förskjutningen av fältet inom dess innehållande typ som ett 64-bitarsvärde.
lägeFastighetFör fält som har en platstyp som anger en plats (t.ex. "statisk" returnerar detta platsen för fältet som ett platsobjekt.
värdeFastighetFör fält som har en platstyp som anger ett värde (t.ex. "konstant") returnerar detta värdet för fältet.

Alla dessa poster är närvarande under fas 2 initieringen.

Basklassobjekt

Varje basklass inom en typ beskrivs av ett basklassobjekt med följande egenskaper:

Namn Underskrift Beskrivning
namnFastighetReturnerar namnet på basklassen.
förskjutaFastighetReturnerar offseten för den här basklassen inom den typ där den är inkluderad.
typFastighetReturnerar ett typobjekt som representerar basklassens statiska typ.

Alla dessa poster finns under fas 2-initieringen.

Kodexempel

Ett kodexempel finns i skriptet ImageInfo.js. Mer information om kodexempel finns i Exempelskript för JavaScript-felsökningsprogram.

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

Se även

interna felsökningsobjekt i JavaScript-tillägg

Interna felsökningsobjekt i JavaScript-tillägg – Design- och testningsöverväganden

Skript för JavaScript-felsökningsprogram

Exempelskript för JavaScript-felsökningsprogram