次の方法で共有


ICorDebugRegisterSet2::GetRegisters メソッド

現在コードを実行しているプラットフォームの、特定のビット マスクで指定された各レジスタの値を取得します。

HRESULT GetRegisters (
    [in] ULONG32 maskCount,
    [in, size_is(maskCount)] BYTE mask[],
    [in] ULONG32 regCount,
    [out, size_is(regCount)] CORDB_REGISTER regBuffer[]
);

パラメーター

  • maskCount
    [入力] mask 配列のサイズ (バイト単位)。

  • mask
    [入力] 各ビットがレジスタに対応するバイトの配列。 ビットが 1 の場合は、対応するレジスタの値が取得されます。

  • regCount
    [入力] 取得するレジスタ値の数。

  • regBuffer
    [出力] それぞれがレジスタの値を受け取る、CORDB_REGISTER オブジェクトの配列。

解説

GetRegisters メソッドは、マスクによって指定されたレジスタから値の配列を返します。 この配列には、マスク ビットが設定されていないレジスタの値は格納されません。 したがって、regBuffer 配列のサイズは、マスク内の 1 の数と同じである必要があります。 regCount の値がマスクで指定したレジスタ数に比べて少なすぎる場合、大きい番号のレジスタの値がセットから切り捨てられます。 regCount 値が大きすぎる場合、未使用の regBuffer 要素は変更されません。

使用できないレジスタをマスクで指定した場合、そのレジスタに対しては不定な値が返ります。

ICorDebugRegisterSet2::GetRegisters メソッドは、64 を超えるレジスタを持つプラットフォームで必要です。 たとえば、IA-64 プロセッサには、128 の汎用レジスタと 128 の浮動小数点レジスタがあるので、ビット マスクには 64 ビットを超えるビットが必要です。

64 を超えるレジスタを持たないプラットフォーム (x86 など) の場合、GetRegisters メソッドは、mask バイト配列内のバイトを ULONG64 に実際に変換した後、ICorDebugRegisterSet::GetRegisters メソッドを呼び出します。このメソッドが ULONG64 マスクを受け取ります。

必要条件

プラットフォーム: 「.NET Framework システム要件」を参照

ヘッダー: CorDebug.idl、CorDebug.h

ライブラリ: CorGuids.lib

.NET Framework のバージョン: 4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

参照

参照

ICorDebugRegisterSet2 インターフェイス

ICorDebugRegisterSet インターフェイス