Ping.
On 26.06.2020 13:19, Pavel Dovgalyuk wrote:
> GDB remote protocol supports reverse debugging of the targets.
> It includes 'reverse step' and 'reverse continue' operations.
> The first one finds the previous step of the execution,
> and the second one is intended to stop at the last breakpoint that
> would happen when the program is executed normally.
>
> Reverse debugging is possible in the replay mode, when at least
> one snapshot was created at the record or replay phase.
> QEMU can use these snapshots for travelling back in time with GDB.
>
> Running the execution in replay mode allows using GDB reverse debugging
> commands:
> - reverse-stepi (or rsi): Steps one instruction to the past.
> QEMU loads on of the prior snapshots and proceeds to the desired
> instruction forward. When that step is reaches, execution stops.
> - reverse-continue (or rc): Runs execution "backwards".
> QEMU tries to find breakpoint or watchpoint by loaded prior snapshot
> and replaying the execution. Then QEMU loads snapshots again and
> replays to the latest breakpoint. When there are no breakpoints in
> the examined section of the execution, QEMU finds one more snapshot
> and tries again. After the first snapshot is processed, execution
> stops at this snapshot.
>
> The set of patches include the following modifications:
> - gdbstub update for reverse debugging support
> - functions that automatically perform reverse step and reverse
> continue operations
> - hmp/qmp commands for manipulating the replay process
> - improvement of the snapshotting for saving the execution step
> in the snapshot parameters
> - avocado-based acceptance tests for reverse debugging
>
> Acceptance tests intended to use the version of avocado framework, that
> will be released after 25.06.20, because it includes significant
> fixes of the remote GDB protocol.
>
> The patches are available in the repository:
> https://github.com/ispras/qemu/tree/rr-200626
>
> ---
>
> Pavel Dovgaluk (13):
> replay: provide an accessor for rr filename
> qcow2: introduce icount field for snapshots
> migration: introduce icount field for snapshots
> iotests: update snapshot test for new output format
> qapi: introduce replay.json for record/replay-related stuff
> replay: introduce info hmp/qmp command
> replay: introduce breakpoint at the specified step
> replay: implement replay-seek command
> replay: flush rr queue before loading the vmstate
> gdbstub: add reverse step support in replay mode
> gdbstub: add reverse continue support in replay mode
> replay: describe reverse debugging in docs/replay.txt
> tests/acceptance: add reverse debugging test
>
>
> 0 files changed
>
> --
> Pavel Dovgalyuk
>