In recvmsg, ensure msg_controllen field is updated to the value set by the kernel in scratch-space.
Rename suppress_performance_warnings flag to suppress_warnings.
Every time we record or replay, try to detect the presence of the "CPUID causes rbc undercount" bug.
Automatically apply rcb slack when we detect the "CPUDID rcb undercount bug".

Resolves #1182.
Ensure that internal breakpoints are removed if and only if we set one.

Also fixes assertion so that we die immediately if a breakpoint's refcounts
go negative.

We were removing an internal breakpoint when we hadn't necessarily set one,
so if there was already a user breakpoint at that location we'd set its
internal-breakpoint refcount to -1. We were also failing to remove the
breakpoint in some cases so gdb would see an int3 instruction there.
delete dead defines from types.h

None of these #defines are actually used.  CHECK_ALIGNMENT, PTR_SIZE,
and INT_SIZE could be actively harmful to a proper 32/64-bit-aware
codebase.
declare assembly-only symbols with hidden visibility

In a future world where librrpreload is compiled with -fPIC, we don't
want to be calling these functions through PLT stubs (and then possibly
invoking the dynamic linker).  Make them hidden instead, which is
marginally more efficient even with position-dependent code.
Add support for blocking sendmmsg/recvmmsg (direct mode)
Fix spelling mistake.
make default_action return an enum, rather than an int

More descriptive types are always good.  Giving the enums names also
helps ensure they don't get used in unexpected places.
Bump version to 1.4.0.
Support sendmmsg/recvmmsg within socketcall.

Resolves #1069.
Add orphan_process test.

This test checks whether we can successfully record a descendant
process that forks when its parent no longer has rr as an ancestor
process. This test currently fails with Yama ptrace_scope = 1.
Don't check current value of tid_futex location.

Technically it's valid for a tracee to change the value at this address.
Remove Yama ptrace_scope check since we're going to make it unnecessary.
Add ptrace-based fallback to read and write tracee memory for when /proc/<pid>/mem isn't open.

Not used yet since open_mem_fd still asserts when the open fails.
Fold reopen_mem_fd into open_mem_fd.
Add receive_fd.
Make open_mem_fd() puppet the tracee to open its own /proc/self/mem and pass the fd back to rr.

This works around Yama not letting us open the file directly.

Resolves #764.
Make child_mem_fd per-AddressSpace instead of per-Task.

This is more logical. It saves fds and also means what when we spawn a thread
we don't have to (re)open the mem fd.