Interfaz ICorDebugVariableHome

Representa una variable local o un argumento de una función.

Métodos

Método Descripción
Método GetArgumentIndex Obtiene el índice de un argumento de función.
Método GetCode Obtiene la instancia "ICorDebugCode" que contiene este objeto ICorDebugVariableHome.
Método GetLiveRange Obtiene el intervalo nativo en el que esta variable está activa.
Método GetLocationType Obtiene el tipo de la ubicación nativa de la variable.
Método GetOffset Obtiene el desplazamiento del registro base de una variable.
Método GetRegister Obtiene el registro que contiene una variable con un tipo de ubicación VLT_REGISTER y el registro base de una variable con un tipo de ubicación VLT_REGISTER_RELATIVE.
Método GetSlotIndex Obtiene el índice de ranura administrado de una variable local.

Ejemplo

El fragmento de código siguiente usa el objeto ICorDebugCode4 denominado 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;  
    }  
}  

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

Versiones de .NET Framework: disponible a partir de la versión 4.6.2

Consulte también