Antarmuka ICorDebugVariableHome

Mewakili variabel lokal atau argumen dari suatu fungsi.

Metode

Metode Deskripsi
Metode GetArgumentIndex Mendapatkan indeks argumen fungsi.
Metode GetCode Mendapatkan instans "ICorDebugCode" yang berisi objek ICorDebugVariableHome ini.
Metode GetLiveRange Mendapatkan rentang asli di mana variabel ini hidup.
Metode GetLocationType Mendapatkan jenis lokasi asli variabel.
Metode GetOffset Mendapatkan offset dari register dasar untuk variabel.
Metode GetRegister Mendapatkan register yang berisi variabel dengan jenis lokasi VLT_REGISTER, dan register dasar untuk variabel dengan jenis lokasi VLT_REGISTER_RELATIVE.
Metode GetSlotIndex Mendapatkan indeks slot terkelola dari variabel lokal.

Contoh

Fragmen kode berikut menggunakan objek ICorDebugCode4 bernama 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;  
    }  
}  

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: CorDebug.idl, CorDebug.h

Pustaka: CorGuids.lib

Versi .NET Framework: Tersedia mulai dari 4.6.2

Lihat juga