Delen via


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_REGISTERen 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(&register);  
        // now we know which register it is in  
        break;  
    case VLT_REGISTER_RELATIVE:  
        CorDebugRegister baseRegister = 0;  
        LONG offset = 0;  
        locals[i].GetRegister(&register);  
        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