我想在gdb中使用watch命令记录寄存器更改,如下所示:
(gdb) watch $register-name
每当应用程序中的寄存器发生更改时gdb就会停止,我必须按c继续调试。有没有办法代替无限时间输入,我只是要求gdb将寄存器中的所有更改保存到文件中?
答案 0 :(得分:1)
我必须按c继续调试。
请注意,按<Enter>
将重复上一个命令(例如,之前的c
)。
有没有办法代替无休止地输入,我只是要求gdb将寄存器中的所有更改保存到文件中?
不确定
(gdb) watch $rax
Watchpoint 2: $rax
(gdb) commands 2
Type commands for breakpoint(s) 2, one per line.
End with a line saying just "end".
>c
>end
# This is to prevent stop after every screen-full of output
(gdb) set height 0
(gdb) set logging on
Copying output to gdb.txt.
(gdb) continue
Voila:您现在已经在gdb.txt