ICorDebugVariableHome Interface
Representa uma variável ou argumento local de uma função.
Métodos
Método | Descrição |
---|---|
Método GetArgumentIndex | Obtém o índice de um argumento de função. |
Método GetCode | Obtém a instância "ICorDebugCode" que contém este ICorDebugVariableHome objeto. |
Método GetLiveRange | Obtém o intervalo nativo sobre o qual esta variável é dinâmica. |
Método GetLocationType | Obtém o tipo de localização nativa da variável. |
Método GetOffset | Obtém o desvio do registo base de uma variável. |
GetRegister Method | Obtém o registo que contém uma variável com um tipo de localização de VLT_REGISTER e o registo base de uma variável com um tipo de localização de VLT_REGISTER_RELATIVE . |
Método GetSlotIndex | Obtém o índice de bloco gerido de uma variável local. |
Exemplo
O fragmento de código seguinte utiliza o objeto ICorDebugCode4 com o nome 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: Veja Requisitos de Sistema.
Cabeçalho: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
.NET Framework Versões: Disponível desde a versão 4.6.2
Ver também
Colabore connosco no GitHub
A origem deste conteúdo pode ser encontrada no GitHub, onde também pode criar e rever problemas e pedidos Pull. Para mais informações, consulte o nosso guia do contribuidor.