Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Représente une variable locale ou un argument d’une fonction.
Méthodes
| Méthode | Descriptif |
|---|---|
| GetArgumentIndex, méthode | Obtient l’index d’un argument de fonction. |
| GetCode, méthode | Obtient l’instance « ICorDebugCode » qui contient cet ICorDebugVariableHome objet. |
| GetLiveRange, méthode | Obtient la plage native sur laquelle cette variable est active. |
| GetLocationType, méthode | Obtient le type de l’emplacement natif de la variable. |
| GetOffset, méthode | Obtient le décalage du registre de base pour une variable. |
| GetRegister, méthode | Obtient le registre qui contient une variable avec un type d’emplacement , et le registre de VLT_REGISTERbase pour une variable avec un type d’emplacement de VLT_REGISTER_RELATIVE. |
| GetSlotIndex, méthode | Obtient l’index d’emplacement managé d’une variable locale. |
Example
Le fragment de code suivant utilise l’objet ICorDebugCode4 nommé 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;
}
}
Spécifications
Plates-formes: Consultez les systèmes d’exploitation pris en charge par .NET.
En-tête: CorDebug.idl, CorDebug.h
Bibliothèque: CorGuids.lib
Versions de .NET : Disponible depuis .NET Framework 4.6.2