> Ideally all debug features (breakpoints, watchpoints, tracepoints &c.) will work running both forwards and backwards.
Executing arbitrary code in the program's context is also a regular debug feature, but I don't think many reversible debuggers allow this.