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
Change-Id: I3cedb043aed499f3eb27f9838d040be77dc92d9a
1 file changed