ICorDebugVariableHome Interface
Vertegenwoordigt een lokale variabele of argument van een functie.
Methoden
Methode | Beschrijving |
---|---|
Methode GetArgumentIndex | Hiermee haalt u de index van een functieargument op. |
Methode GetCode | Hiermee haalt u het exemplaar 'ICorDebugCode' op dat dit ICorDebugVariableHome object bevat. |
Methode GetLiveRange | Hiermee haalt u het systeemeigen bereik op waarover deze variabele live is. |
Methode GetLocationType | Hiermee haalt u het type van de systeemeigen locatie van de variabele op. |
Methode GetOffset | Hiermee haalt u de offset op uit het basisregister voor een variabele. |
Methode GetRegister | Hiermee haalt u het register op dat een variabele bevat met het locatietype VLT_REGISTER en het basisregister voor een variabele met het locatietype VLT_REGISTER_RELATIVE . |
Methode GetSlotIndex | Hiermee haalt u de beheerde site-index van een lokale variabele op. |
Voorbeeld
Het volgende codefragment maakt gebruik van het ICorDebugCode4-object met de naam pCode4
.
ICorDebugCode4 *pCode4 = NULL;
pCode->QueryInterface(IID_ICorDebugCode4, &pCode4);
ICorDebugVariableEnum *pVarLocEnum = NULL;
pCode4->EnumerateVariableHomes(&pVarLocEnum);
// retrieve local variables and arguments
ULONG celt = 0;
pVarLocEnum->GetCount(&celt);
ICorDebugVariableHome **homes = new ICorDebugVariableHome *[celt];
ULONG celtFetched = 0;
pVarLocEnum->Next(celt, homes, &celtFetched);
for (int i = 0; i < celtFetched; i++)
{
VariableLocationType locType = VLT_INVALID;
homes[i].GetLocationType(&locType);
switch (locType)
{
case VLT_REGISTER:
CorDebugRegister register = 0;
locals[i].GetRegister(®ister);
// now we know which register it is in
break;
case VLT_REGISTER_RELATIVE:
CorDebugRegister baseRegister = 0;
LONG offset = 0;
locals[i].GetRegister(®ister);
locals[i].GetOffset(&offset);
// now we know the register-relative offset
break;
case VLT_INVALID:
// handle case where we can't access the location
break;
}
}
Vereisten
Platforms: Zie Systeemvereisten.
Header: CorDebug.idl, CorDebug.h
Bibliotheek: CorGuids.lib
.NET Framework versies: beschikbaar sinds 4.6.2
Zie ook
Met ons samenwerken op GitHub
De bron voor deze inhoud vindt u op GitHub, waar u ook problemen en pull-aanvragen kunt maken en controleren. Bekijk onze gids voor inzenders voor meer informatie.