Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 |
| namn | Fastighet | Returnerar namnet på typen. |
| storlek | Fastighet | Returnerar storleken på typen som ett 64-bitars värde. |
| typeKind | Fastighet | Returnerar 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". |
| basTyp | Fastighet | Returnerar 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ält | Fastighet | Returnerar 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. |
| baseClasses | Fastighet | Returnerar en matris med alla omedelbara basklasser av typen. Varje objekt i matrisen är ett basklassobjekt enligt beskrivningen nedan. |
| functionReturnType | Fastighet | För funktionstyper returnerar detta ett typobjekt som representerar funktionens returtyp. |
| funktionsParametertyper | Fastighet | För funktionstyper returnerar detta en matris med typobjekt som representerar funktionens parametertyper. |
| funktionsanropskonvention | Fastighet | Fö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". |
| pointerKind | Fastighet | Fö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". |
| memberType | Fastighet | För pekartyper som är medlemspekare returnerar detta ett typobjekt som representerar medlemsklassen. |
| ärGenerisk | Fastighet | Returnerar om typen är generisk eller inte. Detta kommer att returnera sant för malltyper. |
| genericArguments | Fastighet | För typer som är generiska returnerar detta en matris med generiska argument. Sådana argument kan vara typargument eller vara konstanta värden. |
| isBitField | Fastighet | Returnerar om lagringen för typen är ett bitfält eller inte. |
| bitfältspositioner | Fastighet | Fö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 |
| namn | Fastighet | Returnerar namnet på fältet. |
| typ | Fastighet | Returnerar ett typobjekt som representerar fältets statiska typ. |
| locationKind | Fastighet | Returnerar 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örskjuta | Fastighet | Fö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äge | Fastighet | Fö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ärde | Fastighet | Fö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 |
| namn | Fastighet | Returnerar namnet på basklassen. |
| förskjuta | Fastighet | Returnerar offseten för den här basklassen inom den typ där den är inkluderad. |
| typ | Fastighet | Returnerar 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