Handle mmaps where some pages of the mapping are beyond the end of the file; these pages generate SIGBUS when accessed.
Merge pull request #1045 from rocallahan/mmap-short-files

Handle mmaps where some pages of the mapping are beyond the end of the f...
Fix 'make check' regressions from a2e62741f7c4721a692dd34fd3e82a7da8f35751
Merge pull request #1048 from rocallahan/fix-mmap-regressions

Fix 'make check' regressions from a2e62741f7c4721a692dd34fd3e82a7da8f357...
When exec'ing a 64-bit image (not currently supported by rr),
cause the exec to fail cleanly without aborting rr.

Also print slightly better messages when the user tries to apply rr
to a 64-bit image directly.
Support accept4().
Merge pull request #1052 from rocallahan/accept4

Support accept4().
Merge remote-tracking branch 'roc/fail-exec-64bit'
Warn when using Haswell CPU with microcode != 0x7.
Revert "When exec'ing a 64-bit image (not currently supported by rr)," because it breaks recording exe images that require a $PATH lookup.

This reverts commit 8c852633c58ee07999d9dc2968af7c1701f21e94.
Simply the default record/replay workflow.

With this change, traces are saved to ~/.rr/ by default (this can
still be overridden with the _RR_TRACE_DIR env var.)  In addition, a
"latest-trace" symlink is maintained within the saved-trace dir, and
updated with each invocation of |rr record|.  This enables the next
simplification, which is allowing |rr replay| to be specified with no
arguments.  This replays the "latest-trace" symlink in the saved-trace
dir.

And finally, trace directories are now named based on the basename of
the exe path that's recorded.  So for example, |rr record
/usr/bin/firefox| will create a trace directory "firefox-$nonce".

With these changes, users can do the following

    $ rr record foo
    [Saves recording of "foo" to ~/.rr/foo-0.]
    $ rr replay
    [Replays ~/.rr/latest-trace, which points at ~/.rr/foo-0.]
    $ rr record bar
    [Saves recording of "foo" to ~/.rr/bar-0.]
    $ rr replay
    [Replays ~/.rr/latest-trace, which points at ~/.rr/bar-0.]
    $ rr replay ~/.rr/foo-0
    [Replays ~/.rr/foo-0, which is still saved.]
Move the record_*_data() helpers to Task methods.
When exec'ing a 64-bit image (not currently supported by rr), cause
the exec to fail cleanly without aborting rr.
Get the global trace time through Task.
Search for librrpreload.so in bin/../lib (where 'bin' is the directory
containing the rr executable according to argv[0]) and pass the full path
name to LD_PRELOAD if found there, so that LD_LIBRARY_PATH doesn't need
to be configured by users who built rr but didn't install it.

If librrpreload.so is not found in bin/../lib, assume it has been installed
somewhere under LD_LIBRARY_PATH, and set LD_PRELOAD to use the bare
library name.
Move record-event helpers to Task.
Include null terminator in string recorded by Task::record_remote_str.

This fixes a regression introduced by commit 2ccd42.
Merge pull request #1063 from rocallahan/string-length

Include null terminator in string recorded by Task::record_remote_str.
Notify gdb of signal-stops when the signal becomes pending, not after entering the sighandler frame.
Merge remote-tracking branch 'roc/absolute-preload-path'