Update address space of map if it changes.

In debuggerd, a single BacktraceMap is created that is used to unwind
all of the threads in the process. Unfortunately, the address space
data can be cached in the libunwind copy of the map data. However, the
address space is only valid in the Backtrace object and does not survive
across unwinds. This can lead to a crash when a cached map that is only
present in memory tries to access the already destroyed address space.

The fix is to update the address space, if necessary, whenever a
cached map that only exists in memory is about to be used.

Bug: 28210681
(cherry picked from commit b5ab7580d01cab4d090784f1351d1b3895a60f23)

Change-Id: I1d2b73753c3c1efe4180775b79a6cc12da8f3c4b
1 file changed