Bagikan melalui


Antarmuka ICorDebugVariableHome

Mewakili variabel lokal atau argumen fungsi.

Methods

Metode Description
Metode GetArgumentIndex Mendapatkan indeks argumen fungsi.
Metode GetCode Mendapatkan instans "ICorDebugCode" yang berisi objek ini ICorDebugVariableHome .
Metode GetLiveRange Mendapatkan rentang asli tempat variabel ini ditayangkan.
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 VLT_REGISTERlokasi , dan register dasar untuk variabel dengan jenis VLT_REGISTER_RELATIVElokasi .
Metode GetSlotIndex Mendapatkan indeks slot terkelola dari variabel lokal.

Example

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 Sistem operasi yang didukung .NET.

Header: CorDebug.idl, CorDebug.h

Perpustakaan: CorGuids.lib

Versi .NET: Tersedia sejak .NET Framework 4.6.2

Lihat juga