Robert O'Callahan

Results 250 comments of Robert O'Callahan

Let's call that new function `load_checkpoint`. I think it would be best if `load_checkpoint` actually calls `ReplaySession::create` to create a new `ReplaySession` and then clones that initial task to create...

When cloning a `ReplaySession`, for each address space, we select one task (`group_leader`) that's using that address space and cause it to `fork()`, making a copy of that address space....

Not quite. All threads in a thread-group share the same address space, but it is also possible for different thread-groups to share the same address space thanks to the magic...

Yes. We reset the hardware tick count every time we resume execution. The only ongoing tick count is the one we keep in `Task`, and we copy that when we...

> When you say resume execution what does that exactly mean in this context `Task::resume_execution`. That runs every time we run any code in the tracee process via `PTRACE_CONT` or...

Descheduling the thread from the CPU does not count as a ptrace stop. From ptrace's point of view, the thread is still "running". In ptrace terms the thread doesn't stop...

Read all the comments in `ReplayTimeline.h` and for whatever is still not clear, we should expand those comments.

Hopefully this helps: https://github.com/mozilla/rr/commit/0beec8c8d566e0bfb3f05abb86f5459a9a5fe366

I'll see if I can reproduce this with your Firefox branch.

I build your tree (opt build). It didn't work very well --- stopped being able to load pages after the first one --- but it didn't crash. Replay succeeded fine....