-
Notifications
You must be signed in to change notification settings - Fork 585
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
rr doesn't work on newer libcs #2428
Comments
Can you disassemble exactly what we're crashing on (by attaching the emergency debugger to the recorded session if necessary)? |
This is what I see from the replay:
I don't see any emergency debugger instructions.
|
Oh, we're dying during replay? What is rax? |
During record too:
But it seems it's the recorded process that dies...
|
What version of glibc is this? Can you pack that trace and put it somewhere I can get it? |
This is glibc |
@emilio Try this patch:
|
Well, that patch is pretty clearly the right thing to do given modern VDSOs support |
(Of course, reopen if that patch fails to get things working for you.) |
Yeah, that wfm, thanks! Should that also be in the x86 syscalls_to_monkeypatch? |
Yes, good catch. Done: bf625d2 |
Using unstable `rr` because of no new stable releases. Were hit by `https://github.com/rr-debugger/rr/issues/2428` in production, but it only fixed in master branch.
Recording any program that uses something like
clock_getres
fails with newer glibc.Simplest example is
$ ./bin/rr ./bin/clock
I noticed this syscall is unsupported, and thought it'd be a matter of just supporting it... But apparently the code that's segfaulting is the
INLINE_VSYSCALL
macro inside glibc.The libc code we're hitting looks like this:
I don't know how we deal with vsyscalls, but I'm happy to give fixing this a shot with some pointers.
The text was updated successfully, but these errors were encountered: