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 位。

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

要求

平台:请参阅系统要求

标头:CorDebug.idl、CorDebug.h

库:CorGuids.lib

.NET Framework 版本:自 2.0 起可用

请参阅