Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GDB Checkpoint Issue #3678

Open
theIDinside opened this issue Jan 12, 2024 · 0 comments
Open

GDB Checkpoint Issue #3678

theIDinside opened this issue Jan 12, 2024 · 0 comments

Comments

@theIDinside
Copy link
Contributor

theIDinside commented Jan 12, 2024

There's currently an issue with GDB checkpoints making them behave in (probably) unintended ways.

Here's a quick run down of the behavior:

  • user sets checkpoint at time T (with the checkpoint command)
  • the checkpoint is not explicit, so it will rely on an internal checkpoint at some time (T-n)
  • replay continues until next stop

During the continue until next stop, the internal checkpoint at (T-n) might have been cleaned up & removed by the supervisor. If there's an internal checkpoint before it, the GDB checkpoint will restart from that instead (and if there is none before T-n, essentially restarting that checkpoint amounts to restarting the replay from the beginning).

This is probably not the intended behavior.

This issue will be fixed by the Persistent Checkpoint PR, because that PR requires this "searching backwards for internal checkpoints"-functionality (and has also refactored out the checkpoint refcount management, which is what keeps "internal checkpoints" alive).

So this issue will be closed by #3406 once it's done.

I came across this bug when finishing up that PR. So once I can get an "ok" that we can solve it by pulling in that PR when it's done, I'll move forward with updating the PR (rebasing onto master) - otherwise I'll have to fix this issue first (which is fine too).

theIDinside added a commit to theIDinside/rr that referenced this issue Jan 15, 2024
Refactor so that marks_with_checkpoints is just changed in one place, not arbitrarily access it. Ref counts had the same changes in a previous commit.

Fixes a bug for loaded persistent checkpoints where the re-created checkpoints did not get their reference counting correct.

This closes rr-debugger#3678
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant