【发布时间】:2012-04-14 12:42:22
【问题描述】:
我可以转储 gdb 中的所有整数寄存器:
info registers
对于 xmm 寄存器 (intel),我需要一个类似的文件:
print $xmm0
print $xmm1
...
print $xmm15
然后获取该文件。有没有更简单的方法?
【问题讨论】:
我可以转储 gdb 中的所有整数寄存器:
info registers
对于 xmm 寄存器 (intel),我需要一个类似的文件:
print $xmm0
print $xmm1
...
print $xmm15
然后获取该文件。有没有更简单的方法?
【问题讨论】:
(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。
【讨论】:
info mmx 和 info mmx-registers 对我不起作用。我想我会问,是全部还是全部?否则,该寻呼机将停止我的工作流程。
info reg vec 转储全宽寄存器,如果它们是 ZMM 或 YMM,它们可能会很混乱,但您只处理使用 XMM 低 128 位的代码。
罚款manual 说:
(gdb) info all-registers
【讨论】:
如果您只想打印 xmm 寄存器,则可以使用 info registers sse(或缩写 i r sse 甚至 i r s)。
同样只打印出你可以使用info registers float(或i r f)的fpu寄存器。
(在上述命令中,sse 和 float 是register groups,您可以使用maintenance print reggroups 列出。)
【讨论】:
info reg vec 转储它们的全宽,例如YMM 或 ZMM 在支持它的系统上。