HomePhabricator

Fix the L1 cache search in MemoryCache::Read to use the

Description

Fix the L1 cache search in MemoryCache::Read to use the
stl upper_bound method instead of lower_bound - we were
failing to find some cached data in the L1 cache resulting
in extra memory read packets while stepping.

The bug with the existing code looked like this:
If the L1 cache has 8 bytes at address 0x1000 and 8 bytes
at address 0x2000 and we are searching for 4 bytes at 0x2004,
the use of lower_bound would return the end() of the container
and so we would incorrectly treat the memory as uncached.

(the L1 cache is memory seeded from debugserver in the T aka
questionmark packet, where debugserver will send up the stack
memory that likely contains the caller's stack pointer and
frame pointer values.)

rdar://problem/23869227

Details

Committed
jmolendaDec 11 2015, 7:06 PM
Parents
rL255420: Preserve source location information for qualified names used in a constructor
Branches
Unknown
Tags
Unknown