ICorDebugRegisterSet2::GetRegisters method
Gets the value of each register (for the platform on which code is currently executing) that is specified by the given bit mask.
Syntax
HRESULT GetRegisters (
[in] ULONG32 maskCount,
[in, size_is(maskCount)] BYTE mask[],
[in] ULONG32 regCount,
[out, size_is(regCount)] CORDB_REGISTER regBuffer[]
);
Parameters
maskCount
[in] The size, in bytes, of the mask
array.
mask
[in] An array of bytes, each bit of which corresponds to a register. If the bit is 1, the corresponding register's value will be retrieved.
regCount
[in] The number of register values to be retrieved.
regBuffer
[out] An array of CORDB_REGISTER
objects, each of which receives the value of a register.
Remarks
The GetRegisters
method returns an array of values from the registers that are specified by the mask. The array does not contain values of registers whose mask bit is not set. Thus, the size of the regBuffer
array must be equal to the number of 1's in the mask. If the value of regCount
is too small for the number of registers indicated by the mask, the values of the higher numbered registers will be truncated from the set. If regCount
is too large, the unused regBuffer
elements will be unmodified.
If an unavailable register is indicated by the mask, an indeterminate value will be returned for that register.
The ICorDebugRegisterSet2::GetRegisters
method is necessary for platforms that have more than 64 registers. For example, IA64 has 128 general purpose registers and 128 floating-point registers, so you need more than 64 bits in the bit mask.
If you don't have more than 64 registers, as is the case on platforms such as x86, the GetRegisters
method just translates the bytes in the mask
byte array into a ULONG64
and then calls the ICorDebugRegisterSet::GetRegisters method, which takes the ULONG64
mask.
Requirements
Platforms: See System Requirements.
Header: CorDebug.idl, CorDebug.h
Library: CorGuids.lib
.NET Framework Versions: Available since 2.0