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(®ister);
// now we know which register it is in
break;
case VLT_REGISTER_RELATIVE:
CorDebugRegister baseRegister = 0;
LONG offset = 0;
locals[i].GetRegister(®ister);
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
Colaborar con nosotros en GitHub
El origen de este contenido se puede encontrar en GitHub, donde también puede crear y revisar problemas y solicitudes de incorporación de cambios. Para más información, consulte nuestra guía para colaboradores.