ICorDebugVariableHome, interfaceICorDebugVariableHome Interface

Représente une variable locale ou un argument d’une fonction.Represents a local variable or argument of a function.

MéthodesMethods

MéthodeMethod DescriptionDescription
GetArgumentIndex, méthodeGetArgumentIndex Method Obtient l’index d’un argument de fonction.Gets the index of a function argument.
GetCode, méthodeGetCode Method Obtient l’instance « ICorDebugCode » qui contient ce ICorDebugVariableHome objet.Gets the "ICorDebugCode" instance that contains this ICorDebugVariableHome object.
GetLiveRange, méthodeGetLiveRange Method Obtient la plage native sur laquelle cette variable est en ligne.Gets the native range over which this variable is live.
GetLocationType, méthodeGetLocationType Method Obtient le type d’emplacement native de la variable.Gets the type of the variable's native location.
GetOffset, méthodeGetOffset Method Obtient le décalage à partir du Registre de base pour une variable.Gets the offset from the base register for a variable.
GetRegister, méthodeGetRegister Method Obtient le Registre qui contient une variable avec un type d’emplacement de VLT_REGISTER, le Registre de base et d’une variable avec un type d’emplacement de VLT_REGISTER_RELATIVE.Gets the register that contains a variable with a location type of VLT_REGISTER, and the base register for a variable with a location type of VLT_REGISTER_RELATIVE.
GetSlotIndex, méthodeGetSlotIndex Method Obtient l’index emplacement managé d’une variable locale.Gets the managed slot-index of a local variable.

ExempleExample

Le fragment de code suivant utilise la ICorDebugCode4 objet nommé pCode4.The following code fragment uses the ICorDebugCode4 object named 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;  
    }  
}  

Configuration requiseRequirements

Plateformes : Consultez Configuration requise.Platforms: See System Requirements.

En-tête : CorDebug.idl, CorDebug.hHeader: CorDebug.idl, CorDebug.h

Bibliothèque : CorGuids.libLibrary: CorGuids.lib

Versions du .NET Framework : Disponible à partir de 4.6.2Available since 4.6.2.NET Framework Versions: Disponible à partir de 4.6.2Available since 4.6.2

Voir aussiSee also