ICorDebugVariableHome, interfejs
Reprezentuje zmienną lokalną lub argument funkcji.
Metody
Metoda | Opis |
---|---|
GetArgumentIndex, metoda | Pobiera indeks argumentu funkcji. |
GetCode, metoda | Pobiera wystąpienie "ICorDebugCode", które zawiera ten ICorDebugVariableHome obiekt. |
GetLiveRange, metoda | Pobiera zakres macierzysty, w którym ta zmienna jest aktywna. |
GetLocationType, metoda | Pobiera typ lokalizacji natywnej zmiennej. |
GetOffset — Metoda | Pobiera przesunięcie z rejestru podstawowego dla zmiennej. |
GetRegister, metoda | Pobiera rejestr zawierający zmienną o typie VLT_REGISTER lokalizacji , a rejestr podstawowy zmiennej o typie VLT_REGISTER_RELATIVE lokalizacji . |
GetSlotIndex, metoda | Pobiera zarządzany indeks miejsca zmiennej lokalnej. |
Przykład
Poniższy fragment kodu używa obiektu ICorDebugCode4 o nazwie 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;
}
}
Wymagania
Platformy: Zobacz Wymagania systemowe.
Nagłówka: CorDebug.idl, CorDebug.h
Biblioteki: CorGuids.lib
wersje .NET Framework: dostępne od wersji 4.6.2
Zobacz też
Współpracuj z nami w serwisie GitHub
Źródło tej zawartości można znaleźć w witrynie GitHub, gdzie można również tworzyć i przeglądać problemy i żądania ściągnięcia. Więcej informacji znajdziesz w naszym przewodniku dla współtwórców.