mozilla/rr — pull request #652 by cgjones (2014-01-27 23:00:31+00:00)
Title: Add rr's own locally cached view of processes' address spaces.

This commit adds a cached address space structure and updates it per
syscalls that affect memory mappings: mmap/mremap/unmap/et al. The
patch is straightforward except for the |is_adjacent_mapping()| helper
which decides if two mappings should be merged. The subtlety in that
helper is that the heuristics were chosen so that the cached map and
the kernel's (/proc/[tid]/maps) maintain a bijection, for simplicity.

Also added is a new "-k/--check-cached-maps" flag, which has rr assert
that its locally cached map matches /proc/[tid]/maps after each
syscall. This flag is now enabled for all unit tests and should
default on for future DEBUG builds.

r?/f? @rocallahan, however in depth you want to look.