[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v7 00/14] Reverse debugging
From: |
Paolo Bonzini |
Subject: |
Re: [PATCH v7 00/14] Reverse debugging |
Date: |
Mon, 5 Oct 2020 14:27:13 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 |
On 03/10/20 19:12, 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
>
> The patches are available in the repository:
> https://github.com/ispras/qemu/tree/rr-200901
>
> v7 changes:
> - updated snapshot info output format
> - fixed qcow2 snapshot-related tests
Sorry, I'm still seeing a failure
timeout 15 /home/travis/build/bonzini/qemu/build/qemu-system-aarch64 -monitor
none -display none -chardev file,path=memory-replay.out,id=output -icount
shift=5,rr=replay,rrfile=record.bin -M virt -cpu max -display none
-semihosting-config enable=on,target=native,chardev=output -kernel memory
qemu-system-aarch64: terminating on signal 15 from pid 38312 (timeout)
https://travis-ci.com/gitlab/bonzini/qemu/jobs/395029273
Paolo
- [PATCH v7 11/14] gdbstub: add reverse continue support in replay mode, (continued)
- [PATCH v7 11/14] gdbstub: add reverse continue support in replay mode, Pavel Dovgalyuk, 2020/10/03
- [PATCH v7 12/14] replay: describe reverse debugging in docs/replay.txt, Pavel Dovgalyuk, 2020/10/03
- [PATCH v7 13/14] replay: create temporary snapshot at debugger connection, Pavel Dovgalyuk, 2020/10/03
- [PATCH v7 14/14] tests/acceptance: add reverse debugging test, Pavel Dovgalyuk, 2020/10/03
- Re: [PATCH v7 14/14] tests/acceptance: add reverse debugging test, Philippe Mathieu-Daudé, 2020/10/06
- Re: [PATCH v7 00/14] Reverse debugging, no-reply, 2020/10/03
- Re: [PATCH v7 00/14] Reverse debugging,
Paolo Bonzini <=