Going to an event nearby should not have to restart execution during replay
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 10.7k
- Forks
- 662
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 2
Description
Lets say I type:
run 20000
gdb asks me if I want to restart execution from the beginning: i.e.
The program being debugged has been started already.
Start it from the beginning? (y or n) y
After waiting for a bit:
--------------------------------------------------
---> Reached target process 42895 at event 20001.
--------------------------------------------------
Now if I say run 20010, gdb asks me I again I should start from the beginning. Why is that? Is it not possible for rr to replay 10 more events instead of all the way from the beginning?
Or maybe there is some other syntax I need to enter in the gdb client?
My overall motivation is that I would like to use event numbers to do most of my analysis. I have some mappings from event numbers to "interesting" parts of my program ( #1688 ). Also I have a huge number of events and doing the replay from the very start will make rr extremely slow for me.
Now I may want to go forward in the number of events or even backward (e.g. run 19990 ). With forward, I can imagine rr should be able to just replay 10 more events. In the case of going backward I would probably need to do some checkpointing perhaps.
So basically
- How to efficiently run forward a few events
- How to efficiently run backward a few events
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 with the GDB client's run command and reproduce the event-number behavior described in the issue. Investigate how rr handles moving forward from the current event and backward to an earlier event, including the checkpointing concern. Done means the supported syntax and an efficient approach for nearby forward and backward events are documented or implemented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100