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.
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:
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
qSupportedpacket withReverseStep+;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.