Unable to break while running backwards: Assertion `req.is_resume_request() || req.type == DREQ_INTERRUPT'
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 10.7k
- Forks
- 662
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 2
Description
Usually if I try to interrupt gdb, rr crashes. Just now I was doing a reverse-continue with a watchpoint set, it was taking a very long time, so I hit ctrl-C:
(rr) rc
Continuing. C-c C-c
rr: /home/sfink/src/rr/src/GdbConnection.cc:1346: void rr::GdbConnection::notify_stop(rr::GdbThreadId, int, uintptr_t): Assertion `req.is_resume_request() || req.type == DREQ_INTERRUPT' failed.
Remote communication error. Target disconnected.: Connection reset by peer.
I normally avoid breaking during an rr replay to avoid this, but it would be nice if it could work.
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 at src/GdbConnection.cc:1346 and inspect how notify_stop handles an interrupt during reverse-continue with a watchpoint. Reproduce the issue in rr with the reported reverse-continue and Ctrl-C sequence, then verify that interrupting no longer triggers the assertion or disconnects GDB.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, linux
- Domain
- devtools, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100