Бөлісу құралы:


Интерфейс ICorDebugVariableHome

Представляет локальную переменную или аргумент функции.

Методы

Метод Описание
Метод GetArgumentIndex Возвращает индекс аргумента функции.
Метод GetCode Возвращает экземпляр ICorDebugCode, содержащий этот ICorDebugVariableHome объект.
Метод GetLiveRange Возвращает собственный диапазон, в котором находится эта переменная.
Метод GetLocationType Возвращает тип собственного расположения переменной.
Метод GetOffset Возвращает смещение от базового регистра для переменной.
Метод GetRegister Возвращает регистр, содержащий переменную с типом VLT_REGISTERрасположения , и базовый регистр для переменной с типом VLT_REGISTER_RELATIVEрасположения .
Метод GetSlotIndex Возвращает управляемый индекс слота локальной переменной.

Пример

В следующем фрагменте кода используется объект ICorDebugCode4 с именем 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;  
    }  
}  

Требования

Платформы: см. раздел Требования к системе.

Заголовок: CorDebug.idl, CorDebug.h

Библиотека: CorGuids.lib

версии платформа .NET Framework: доступно с версии 4.6.2.

См. также раздел