次の方法で共有


ICorDebugRegisterSet2::GetRegisters メソッド

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

構文

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

パラメーター

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

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

regCount [in]取得するレジスタ値の数。

regBuffer [out] CORDB_REGISTER オブジェクトの配列。各オブジェクトはレジスタの値を受け取ります。

注釈

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

使用できないレジスタがマスクによって示されている場合は、そのレジスタの不確定な値が返されます。

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

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

Requirements

プラットフォーム:サポートされている .NET オペレーティング システムを参照してください。

ヘッダ: CorDebug.idl、CorDebug.h

図書館: CorGuids.lib

.NET のバージョン: .NET Framework 2.0 以降で使用可能

こちらも参照ください