Interfaccia ICorDebugVariableHome

Rappresenta una variabile locale o un argomento di una funzione.

Metodi

Metodo Descrizione
Metodo GetArgumentIndex Ottiene l'indice di un argomento di funzione.
Metodo GetCode Ottiene l'istanza "ICorDebugCode" che contiene questo ICorDebugVariableHome oggetto.
Metodo GetLiveRange Ottiene l'intervallo nativo su cui questa variabile è attiva.
Metodo GetLocationType Ottiene il tipo della posizione nativa della variabile.
Metodo GetOffset Ottiene l'offset dal registro di base per una variabile.
Metodo GetRegister Ottiene il registro che contiene una variabile con un tipo di posizione di VLT_REGISTERe il registro di base per una variabile con un tipo di posizione di VLT_REGISTER_RELATIVE.
Metodo GetSlotIndex Ottiene l'indice dello slot gestito di una variabile locale.

Esempio

Il frammento di codice seguente usa l'oggetto ICorDebugCode4 denominato 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;  
    }  
}  

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: CorDebug.idl, CorDebug.h

Libreria: CorGuids.lib

Versioni di .NET Framework: Disponibile da 4.6.2

Vedi anche