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 起可用
请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈