rr-debugger / rr-debugger/rr

Use "Branch Trace Store" to compare executions

Open
#601 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

This is like #532 on steroids: we use the hardware branch recorder to log all branches in recording, say. Then we do the same thing in replay and compare. The upside is that it's perfectly precise, always up-to-date, fast, and doesn't require any recompiling. Downside is that it will generate a lot more data than #532 in general, so maybe not appropriate for checking long executions, and it requires burrowing a software hole down to privileged hardware.

We got this close to having a |perf branch| tool [1], but AFAICT the implementation died in committee [2]. Argh! So won't get this interface "for free".

[1] https://events.linuxfoundation.org/slides/2011/linuxcon-japan/lcj2011_nagai.pdf
[2] https://lkml.org/lkml/2011/5/30/234

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 issue names no implementation files or tests. Start by reviewing issue #532 and the linked Linux perf branch-tool references, then determine the scope of comparing branch traces from recording and replay; done would mean a precise comparison approach that accounts for data volume and privileged hardware access.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
operating-systems, reverse-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.