gdbstub: add reverse continue support in replay mode
commitcda382594b7ea50aff5f672f32767f9f9fef4c12
authorPavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>
Sat, 3 Oct 2020 17:13:49 +0000 (3 20:13 +0300)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 6 Oct 2020 06:34:49 +0000 (6 08:34 +0200)
tree9d33774ea1a44059a0a7d5e9895f5d7a3d530eba
parentfda8458bd3a9cb3108ba2f09921b6e3eee0d1bf3
gdbstub: add reverse continue support in replay mode

This patch adds support of the reverse continue operation for gdbstub.
Reverse continue finds the last breakpoint that would happen in normal
execution from the beginning to the current moment.
Implementation of the reverse continue replays the execution twice:
to find the breakpoints that were hit and to seek to the last breakpoint.
Reverse continue loads the previous snapshot and tries to find the breakpoint
since that moment. If there are no such breakpoints, it proceeds to
the earlier snapshot, and so on. When no breakpoints or watchpoints were
hit at all, execution stops at the beginning of the replay log.

Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Message-Id: <160174522930.12451.6994758004725016836.stgit@pasha-ThinkPad-X280>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
exec.c
gdbstub.c
include/sysemu/replay.h
replay/replay-debugging.c
softmmu/cpus.c
stubs/replay.c