rr-debugger / rr-debugger/rr

rr segfaults when recording an execution

Open
#2,905 57 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

I am trying to record a program's execution using rr and it looks like rr is encountering a segmentation fault. The command to record execution is something like rr record -n <program> <arguments>. Aside from rr: Saving execution to trace directory <trace_output_dir>., there doesn't seem to be anything useful output to the terminal(all other output are logs from the program). As suggested in rr chatroom, I tried setting log level using RR_LOG(something like RR_LOG=warn rr record -n <program> <arguments>) but there was no useful output. I even tried setting log level to debug but nothing.

Since there was no useful log output, I attached gdb to rr and got the following traceback:

#0  0x00007f92b0df455b in kill () at ../sysdeps/unix/syscall-template.S:78
#1  0x00000000005134ac in rr::RecordCommand::run(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&) ()
#2  0x0000000000498163 in main ()
#3  0x00007f92b0dd50b3 in __libc_start_main (main=0x497e10 <main>, argc=0x7, argv=0x7fffc2c759e8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
    stack_end=0x7fffc2c759d8) at ../csu/libc-start.c:308
#4  0x0000000000498579 in _start ()

Unfortunately, I cannot build and run a debug build of rr: some of rr's build dependencies conflicts with other essential packages on my system. I did not find an installable debug build of rr online: if there is one, I can try running that. I am using rr 5.4.0 on Ubuntu 20.04.2 LTS with Linux kernel 5.8.0-59. If any other information would be useful, I can provide that.

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

The report names rr::RecordCommand::run in the traceback but provides no reproducible program or source file. Start by reproducing rr record -n on Ubuntu 20.04.2 with Linux 5.8 and rr 5.4.0, then inspect that entry point under a debug build. Done means identifying why recording reaches kill() and documenting or fixing it with a reproducible test.

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
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.