Aracılığıyla paylaş


ICorDebugVariableHome Arabirimi

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

Methods

Yöntem Description
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 canlı olduğ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.

Example

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. .NET tarafından desteklenen işletim sistemleri.

Üstbilgi: CorDebug.idl, CorDebug.h

Kütüphane: CorGuids.lib

.NET sürümleri: .NET Framework 4.6.2'den itibaren kullanılabilir

Ayrıca bakınız