Implement persistent checkpoints
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 10.7k
- Forks
- 662
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 2
Description
We could speed up the debugging process by allowing the trace to contain persistent checkpoints. Here are some features we could support:
- A
rr create-checkpointscommand that does a full replay of a trace and periodically saves checkpoints of the state into the trace directory. - Make
rr replay -g <N>start replay from the most recent persisted checkpoint. - Make
rr replayload persisted checkpoints during reverse execution. - Make
rr recordoptionally save checkpoints periodically into the trace directory to speed up the above operations.
The minimal implementation that would be useful would be the first two features. Other features could be added on top of that.
The main issues are the mechanics of saving and restoring checkpoints and the format of the persisted checkpoint data.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by examining rr's existing checkpoint save and restore mechanisms, trace-directory handling, and replay entry points. Then investigate the proposed rr create-checkpoints command and rr replay -g <N> behavior. Done means persistent checkpoint data has a defined format, can be created from a full replay, and lets replay start from the latest checkpoint.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- devtools, reverse-engineering
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100