共用方式為


ICorDebugVariableHome 介面

表示函式的區域變數或引數。

方法

方法 描述
GetArgumentIndex 方法 取得函式引數的索引。
GetCode 方法 取得包含此 ICorDebugVariableHome 物件的 "ICorDebugCode" 執行個體。
GetLiveRange 方法 取得此變數作用中的原生範圍。
GetLocationType 方法 取得變數原生位置的類型。
GetOffset 方法 從變數的基底暫存器取得位移。
GetRegister 方法 取得暫存器 (其中包含位置類型為 VLT_REGISTER 的變數) 和位置類型為 VLT_REGISTER_RELATIVE 的變數基地暫存器。
GetSlotIndex 方法 取得區域變數的 Managed 位置索引。

範例

下列程式碼片段使用名為 pCode4ICorDebugCode4 物件。

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;  
    }  
}  

規格需求

平台:請參閱系統需求

標頭:CorDebug.idl、CorDebug.h

程式庫:CorGuids.lib

.NET Framework版本:自 4.6.2 起可用

另請參閱