ICorDebugVariableHome Arabirimi

Bir işlevin yerel değişkenini veya bağımsız değişkenini temsil eder.

Yöntemler

Yöntem Açıklama
GetArgumentIndex Yöntemi İşlev bağımsız değişkeninin dizinini alır.
GetCode Yöntemi Bu ICorDebugVariableHome nesneyi içeren "ICorDebugCode" örneğini alır.
GetLiveRange Yöntemi Bu değişkenin üzerinde bulunduğu yerel aralığı alır.
GetLocationType Yöntemi Değişkenin yerel konumunun türünü alır.
GetOffset Yöntemi Bir değişken için temel yazmaçtan uzaklığı alır.
GetRegister Yöntemi konum türüne sahip bir değişken içeren yazmaç ve konum türü VLT_REGISTERolan bir değişken VLT_REGISTER_RELATIVEiçin temel yazmaç alır.
GetSlotIndex Yöntemi Yerel değişkenin yönetilen yuva dizinini alır.

Örnek

Aşağıdaki kod parçası adlı pCode4ICorDebugCode4 nesnesini kullanır.

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

Gereksinimler

Platform: Bkz. Sistem Gereksinimleri.

Üstbilgi: CorDebug.idl, CorDebug.h

Kitaplığı: CorGuids.lib

.NET Framework Sürümleri: 4.6.2 sürümünden itibaren kullanılabilir

Ayrıca bkz.