问题描述
我一直在寻找一种方法来获取 WinDbg 中 MXCSR 寄存器的内容。查找 r
command 的帮助,我发现了很多选项。我以为我已经用命令覆盖了所有寄存器
0:000> rM 0xfe7f
然而,MXCSR 寄存器仍未包含在内。所以我在 WinDbg 帮助中做了一个完整的搜索,没有给我任何结果(抱歉德国截图):
于是我继续在网上搜索,终于找到了
0:000> r mxcsr
mxcsr=00001f80
我现在想知道是否还有其他寄存器不会被 rM 0xfe7f
显示但无论如何都可用。我对用户模式和 x86 和 AMD64 架构特别感兴趣。
解决方法
我查看了 dbgeng.dll
(版本 10.0.20153.1000)并通过尝试偏移 7DC340
周围的一些字符串找到了更多寄存器。根据其中的一些信息,我找到了 MSDN 网站 x64 registers 和 x86 registers。
另外我发现
-
brto
、brfrom
、exto
、exfrom
- 寄存器 zmm0 到 zmm15 可用作
zmm0h
,可能用于 high 的一半。 - 寄存器 xmm0/ymm0 到 xmm15/ymm15 可用作
ymm0h
和ymm0l
,可能用于 high 和 low 的一半。 - 还有一些没有用,要么是因为我的 CPU 型号,要么是因为我在用户模式而不是内核模式下尝试过。