Fix obvious typo causing rr to report the wrong value for $ebx to gdb!
move print_register_file{,_compact} into Registers
separate out HPC counter printing from register file printing

This change is intended to make it easier to verify the subsequent move
of the register printing into Registers.
move register printing for traces into Registers
make compare_register_files return bool

Like the TODO in compare_register_files suggests, none of the callers
care about the particular registers that didn't match up.  So instead of
returning some semi-complicated value, just return true if everything
matches, and false otherwise.
move guts of compare_register_files into Registers
replace most bare register references with their syscall equivalents
delete unused COPY_CHECK_OVERFLOW macro
Save current working directory during recording and restore it (for the tracee) during replay.

This ensures a relative path passed to the initial execve() is resolved
correctly. There are potential problems with changing cwds that this does not
fix (see issue #1188) but we'll leave those for another day.
Make "rr record" return exit code of the recorded process.
Refactor test util.sh to expose "passed" and "failed" functions.
Add exit_status test to test that "rr record" returns exit status of recorded process.
Close a couple of small file descriptor leaks.
Improve instruction_trace_at_event support.

When trying to capture an instruction trace at a specific event, don't
coalesce EV_SCHED events.

Make instruction_trace_at_event work with 'rr replay -a'.
Add test for CPUID rbc bug.
Update cpuid test to use .S file and to check rbc counts directly.

This makes the test more robust. We know that in the no-syscall-buffer case,
exactly two rbcs should be counted per iteration. Using assembly makes the
parts of the test that depend on the exact generated code impervious to
compiler options and other changes.
Compile librrpreload with -O2

This just works now, probably thanks to froydnj for converting inline asm to .S.

Resolves #796.
checkpoint
checkpoint