関数のローカル変数または引数を表します。
Methods
| メソッド | Description |
|---|---|
| GetArgumentIndex メソッド | 関数引数のインデックスを取得します。 |
| GetCode メソッド | この ICorDebugVariableHome オブジェクトを含む "ICorDebugCode" インスタンスを取得します。 |
| GetLiveRange メソッド | この変数がライブであるネイティブ範囲を取得します。 |
| GetLocationType メソッド | 変数のネイティブ位置の型を取得します。 |
| GetOffset メソッド | 変数のベース レジスタからのオフセットを取得します。 |
| GetRegister メソッド |
VLT_REGISTERの場所の型を持つ変数と、VLT_REGISTER_RELATIVEの場所の型を持つ変数の基本レジスタを含むレジスタを取得します。 |
| GetSlotIndex メソッド | ローカル変数のマネージド スロット インデックスを取得します。 |
Example
次のコード フラグメントでは、pCode4という名前の ICorDebugCode4 オブジェクトを使用します。
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;
}
}
Requirements
プラットフォーム:サポートされている .NET オペレーティング システムを参照してください。
ヘッダ: CorDebug.idl、CorDebug.h
図書館: CorGuids.lib
.NET のバージョン: .NET Framework 4.6.2 以降で利用可能
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET