ICorDebugVariableHome-SchnittstelleICorDebugVariableHome Interface

Stellt eine lokale Variable oder ein Argument einer Funktion.Represents a local variable or argument of a function.

MethodenMethods

MethodeMethod BeschreibungDescription
GetArgumentIndex-MethodeGetArgumentIndex Method Ruft den Index ein Funktionsargument ab.Gets the index of a function argument.
GetCode-MethodeGetCode Method Ruft die Instanz von "ICorDebugCode", der diesen ICorDebugVariableHome Objekt.Gets the "ICorDebugCode" instance that contains this ICorDebugVariableHome object.
GetLiveRange-MethodeGetLiveRange Method Ruft ab, der systemeigenen Bereich, in dem diese Variable ist.Gets the native range over which this variable is live.
GetLocationType-MethodeGetLocationType Method Ruft den Typ des systemeigenen Speicherorts für den Wert der Variablen ab.Gets the type of the variable's native location.
GetOffset-MethodeGetOffset Method Ruft den Offset aus dem Basis-Register für eine Variable ab.Gets the offset from the base register for a variable.
GetRegister-MethodeGetRegister Method Ruft ab, das Register, die eine Variable mit einem Standort enthält VLT_REGISTER, und registrieren Sie die Basis für eine Variable mit einem Speicherort 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-MethodeGetSlotIndex Method Ruft den verwalteten slotindex einer lokalen Variablen ab.Gets the managed slot-index of a local variable.

BeispielExample

Das folgende Codefragment verwendet den ICorDebugCode4 Objekt mit dem Namen 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;  
    }  
}  

AnforderungenRequirements

Plattformen: Weitere Informationen finden Sie unter Systemanforderungen.Platforms: See System Requirements.

Header: CorDebug.idl, CorDebug.hHeader: CorDebug.idl, CorDebug.h

Bibliothek: CorGuids.libLibrary: CorGuids.lib

.NET Framework-Versionen: Verfügbar seit 4.6.2Available since 4.6.2.NET Framework Versions: Verfügbar seit 4.6.2Available since 4.6.2

Siehe auchSee also