Skip to content

Time travel debugging with QEMU record/replay #345

@jeras

Description

@jeras

I am working on a simulator which would have a similar interface to QEMU record/replay functionality.
Since the interfaces are similar, if I get a GUI working with QEMU, I can get my project to work too.
I tried a bunch of DAP extensions for VSCode and none of them worked (and I could not get the maintainers to help).
I have identified 3 major approaches to record/replay:

  • hardware trace in x86 and ARM architectures (this are supported withing GDB, so not a good fit for my project),
  • QEMU record/replay (does not rely on record/replay functionality withing GDB, instead it implements it independently),
  • RR.
    Now I am investigating one by one each GUI with support for RR.

QEMU interfaces with GDB over the GDB Remote Serial Protocol. When running QEMU in replay mode, the reverse step/continue is advertised by answering to the qSupported packet with ReverseStep+;ReverseContinue+;. My tool would do the same.

I did not check yet, whether GDB connected to QEMU would also advertise reverse debug functionality over the MI interface, which seems the interfaces used to connect SEER to RR.

If you wish to support QEMU record/replay functionality with SEER,
I can help with working QEMU examples (Zephyr OS running on ARM/...).
I also have a very good understanding of GDB RSP, but I think the MI protocol is more relevant for a GUI.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions