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 元素将保持不变。

如果掩码指定的寄存器不可用,则将为该寄存器返回一个不确定值。

对于具有 64 个以上寄存器的平台,ICorDebugRegisterSet2::GetRegisters 方法必不可少。 例如,IA64 具有 128 个通用寄存器和 128 个浮点寄存器,因此位掩码中需要有超过 64 个位。

如果没有 64 个以上的寄存器(诸如 x86 等平台上就是如此),GetRegisters 方法实际上只是将 mask 字节数组中的字节转换为 ULONG64,然后调用采用 ULONG64 掩码的 ICorDebugRegisterSet::GetRegisters 方法。

要求

**平台:**请参见 .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 接口