Megosztás a következőn keresztül:


ICorDebugVariableHome felület

Egy függvény helyi változóját vagy argumentumát jelöli.

Methods

Metódus Description
GetArgumentIndex metódus Lekéri egy függvényargumentum indexét.
GetCode metódus Lekéri az objektumot tartalmazó ICorDebugVariableHome "ICorDebugCode" példányt.
GetLiveRange metódus Lekéri azt a natív tartományt, amelyen a változó él.
GetLocationType metódus Lekéri a változó natív helyének típusát.
GetOffset metódus Lekéri az eltolást egy változó alapregisztráltjából.
GetRegister metódus Lekéri a hely típusú VLT_REGISTERváltozót tartalmazó regisztert, valamint egy helytípusú változó alapregisztrálását VLT_REGISTER_RELATIVE.
GetSlotIndex metódus Lekéri egy helyi változó felügyelt pontindexét.

Example

Az alábbi kódrészlet az ICorDebugCode4 nevű pCode4objektumot használja.

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

Platformok: Lásd: .NET által támogatott operációs rendszerek.

Fejléc: CorDebug.idl, CorDebug.h

Könyvtár: CorGuids.lib

.NET-verziók: A .NET-keretrendszer 4.6.2 óta érhető el

Lásd még