ICorDebugVariableHome, interfejs

Reprezentuje zmienną lokalną lub argument funkcji.

Metody

Metoda Opis
GetArgumentIndex, metoda Pobiera indeks argumentu funkcji.
GetCode, metoda Pobiera wystąpienie "ICorDebugCode", które zawiera ten ICorDebugVariableHome obiekt.
GetLiveRange, metoda Pobiera zakres macierzysty, w którym ta zmienna jest aktywna.
GetLocationType, metoda Pobiera typ lokalizacji natywnej zmiennej.
GetOffset — Metoda Pobiera przesunięcie z rejestru podstawowego dla zmiennej.
GetRegister, metoda Pobiera rejestr zawierający zmienną o typie VLT_REGISTERlokalizacji , a rejestr podstawowy zmiennej o typie VLT_REGISTER_RELATIVElokalizacji .
GetSlotIndex, metoda Pobiera zarządzany indeks miejsca zmiennej lokalnej.

Przykład

Poniższy fragment kodu używa obiektu ICorDebugCode4 o nazwie 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;  
    }  
}  

Wymagania

Platformy: Zobacz Wymagania systemowe.

Nagłówka: CorDebug.idl, CorDebug.h

Biblioteki: CorGuids.lib

wersje .NET Framework: dostępne od wersji 4.6.2

Zobacz też