我可以使用以下命令在gdb中转储所有整数寄存器:
info registers
对于xmm寄存器(英特尔),我需要一个类似于以下的文件:
print $xmm0
print $xmm1
...
print $xmm15
然后引用那个文件。有没有更简单的方法?
我可以使用以下命令在gdb中转储所有整数寄存器:
info registers
对于xmm寄存器(英特尔),我需要一个类似于以下的文件:
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
...
最后一个是你要找的答案。
另请参见下面此答案。info reg vec
会转储全宽寄存器,如果它们是ZMM或YMM,则可能会很混乱,但您只需要处理使用XMM低128位的代码。 - Peter Cordes如果您只想打印 xmm 寄存器,可以使用 info registers sse
(或缩写 i r sse
或甚至 i r s
)。
类似地,如果您只想打印 fpu 寄存器,则可以使用 info registers float
(或 i r f
)。
(在上述命令中,sse
和 float
是寄存器组,您可以使用 maintenance print reggroups
列出它们。)