【问题标题】:How to dump all the XMM registers in gdb?如何转储 gdb 中的所有 XMM 寄存器?
【发布时间】:2012-04-14 12:42:22
【问题描述】:

我可以转储 gdb 中的所有整数寄存器:

info registers

对于 xmm 寄存器 (intel),我需要一个类似的文件:

print $xmm0
print $xmm1
...
print $xmm15

然后获取该文件。有没有更简单的方法?

【问题讨论】:

    标签: gdb x86


    【解决方案1】:
    (gdb) apropos registers
    collect -- Specify one or more data items to be collected at a tracepoint
    core-file -- Use FILE as core dump for examining memory and registers
    info all-registers -- List of all registers and their contents
    ...
    

    最后一个是你想要的。

    另请参阅下面的this answer

    【讨论】:

    • 我试过 apropos xmm,但没有想到寄存器。谢谢。
    • 有没有办法只转储 MMX 寄存器? info mmxinfo mmx-registers 对我不起作用。我想我会问,是全部还是全部?否则,该寻呼机将停止我的工作流程。
    • @jww:info reg vec 转储全宽寄存器,如果它们是 ZMM 或 YMM,它们可能会很混乱,但您只处理使用 XMM 低 128 位的代码。
    【解决方案2】:

    罚款manual 说:

    (gdb) info all-registers
    

    【讨论】:

      【解决方案3】:

      如果您只想打印 xmm 寄存器,则可以使用 info registers sse(或缩写 i r sse 甚至 i r s)。

      同样只打印出你可以使用info registers float(或i r f)的fpu寄存器。

      (在上述命令中,ssefloatregister groups,您可以使用maintenance print reggroups 列出。)

      【讨论】:

      • info reg vec 转储它们的全宽,例如YMM 或 ZMM 在支持它的系统上。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 2011-01-14
      • 2017-10-29
      相关资源
      最近更新 更多