Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Stellt eine lokale Variable oder ein Argument einer Funktion dar.
Methodik
| Methode | Description |
|---|---|
| GetArgumentIndex-Methode | Ruft den Index eines Funktionsarguments ab. |
| GetCode-Methode | Ruft die "ICorDebugCode"-Instanz ab, die dieses ICorDebugVariableHome Objekt enthält. |
| GetLiveRange-Methode | Ruft den nativen Bereich ab, über den diese Variable live ist. |
| GetLocationType-Methode | Ruft den Typ des systemeigenen Speicherorts der Variablen ab. |
| GetOffset-Methode | Ruft den Offset aus dem Basisregister für eine Variable ab. |
| GetRegister-Methode | Ruft das Register ab, das eine Variable mit einem Speicherorttyp VLT_REGISTERenthält, und das Basisregister für eine Variable mit einem Speicherorttyp von VLT_REGISTER_RELATIVE. |
| GetSlotIndex-Methode | Ruft den verwalteten Slotindex einer lokalen Variablen ab. |
Example
Das folgende Codefragment verwendet das ICorDebugCode4 -Objekt mit dem Namen 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;
}
}
Anforderungen
Plattformen: Siehe .NET unterstützte Betriebssysteme.
Kopfball: CorDebug.idl, CorDebug.h
Bibliothek: CorGuids.lib
.NET-Versionen: Verfügbar seit .NET Framework 4.6.2