获取由给定位掩码指定的每个寄存器(当前正在执行代码的平台)的值。
Syntax
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 位。
如果没有超过 64 个寄存器,如 x86 等平台上的情况,该方法GetRegisters只是将字节数组中的mask字节转换为一个ULONG64,然后调用采用掩码的 ULONG64ICorDebugRegisterSet::GetRegisters 方法。
要求
平台: 请参阅 .NET 支持的作系统。
页眉: CorDebug.idl、CorDebug.h
图书馆: CorGuids.lib
.NET 版本: 自 .NET Framework 2.0 起可用