ICorDebugRegisterSet2::GetRegisters 方法

获取由给定位掩码指定的每个寄存器(当前正在执行代码的平台)的值。

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 起可用

另请参阅