rr-debugger / rr-debugger/rr

Assertion failure stepping through execv

Open
#1,467 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
10.7k
Forks
662
Avg merge
2d 3h
Merged PRs (30d)
2

Description

Encountered assertion error while replaying process created with fork-exec. Started replay with rr replay -f <pid>, and stepped (gdb s command) three times into execv call.

A workaround (for single exec processes) is to use -f to replay the behavior before the exec and -p to replay the behavior after.

Running latest master 7bf7fd443888ad7c5ee8f6120f95d2c719c3b9ae

Cannot access memory at address 0x2a6
[FATAL /home/kellerb/software/rr/rr/src/ReplayTimeline.cc:564:remove_breakpoint() errno: 5 'Input/output error'] 
 (task 4754 (rec:2948) at time 9983)
 ->  Assertion `it != breakpoints.end()' failed to hold. 

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the failure by recording a fork-exec process, starting rr replay -f <pid>, and stepping three times into execv with GDB. Start at src/ReplayTimeline.cc:564 and inspect the breakpoint-removal path around the reported assertion. Done means replay no longer aborts while stepping through execv, while the -f and -p workaround remains unnecessary for this case.

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
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.