Udostępnij przez


ICorDebugVariableHome, interfejs

Reprezentuje zmienną lokalną lub argument funkcji.

Methods

Metoda Description
GetArgumentIndex, metoda Pobiera indeks argumentu funkcji.
GetCode, metoda Pobiera wystąpienie "ICorDebugCode", które zawiera ten ICorDebugVariableHome obiekt.
GetLiveRange, metoda Pobiera zakres macierzysty, nad 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 dla zmiennej o typie VLT_REGISTER_RELATIVElokalizacji .
GetSlotIndex, metoda Pobiera zarządzany indeks miejsca zmiennej lokalnej.

Example

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;
    }
}

Requirements

Platformy: Zobacz Obsługiwane systemy operacyjne platformy .NET.

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

Biblioteka: CorGuids.lib

Wersje platformy .NET: Dostępne od programu .NET Framework 4.6.2

Zobacz także