Hi,
thanks for the answer, we might have a look at UndoDB and possibly study feasibility on rr implementation, but indeed our use case is probably marginal.
Actually, we are working on the early stages of a tool for program control, inspection and visualisation, in the field of teaching mainly (program state visualization). Though could be used for program testing also (i.e. external verification of program state).
Not in the field of debugging exactly, though we use debuggers for statically compiled languages as in this case it is the most efficient way to control and introspect programs.
Basically we have a controller program which uses a hopefully simple API in python to put observation points and react on these in order to visualize states or in turn add or change observation points.
The API is agnostic to the underlying inferior language in order to ease reuse for different languages as seen in teaching courses.
On the "trace" side of the applications range, we want something more controllable than a full trace, such a PythonTutor does, because most of the time we want to show (or generate slides) for partial states of a program.
On the more "dynamic" side of the application range, we use it for a game to learn finding bugs in a code base (serious games) where the program is itself a game and the visualization of the state is thus interactive and augmented with some control and introspection commands.
In this case actually we want a level of the game to run, with user interactions, but it would also be useful for the user to step back (even read only) to understand what happened in the past in the program, before going further.
Gdb or our own API can record all steps but this is very slow, hence the question on whether RR could record/reverse/replay at the same time.
Thanks,
Christophe