Add AArch64 MASK watchpoint support in debugserver
Add suport for MASK style watchpoints on AArch64 in debugserver on Darwin systems, for watching power-of-2 sized memory ranges. More work needed in lldb before this can be exposed to the user (because they will often try watching memory ranges that are not exactly power-of-2 in size/alignment) but this is the first part of adding that capability. Differential Revision: https://reviews.llvm.org/D149792 rdar://108233371
This commit is contained in:
@@ -129,10 +129,15 @@ class TargetWatchAddressAPITestCase(TestBase):
|
||||
"pointee",
|
||||
value.GetValueAsUnsigned(0),
|
||||
value.GetType().GetPointeeType())
|
||||
# Watch for write to *g_char_ptr.
|
||||
error = lldb.SBError()
|
||||
watchpoint = target.WatchAddress(
|
||||
value.GetValueAsUnsigned(), 365, False, True, error)
|
||||
self.assertFalse(watchpoint)
|
||||
self.expect(error.GetCString(), exe=False,
|
||||
substrs=['watch size of %d is not supported' % 365])
|
||||
|
||||
# debugserver on Darwin AArch64 systems can watch large regions
|
||||
# of memory via https://reviews.llvm.org/D149792 , don't run this
|
||||
# test there.
|
||||
if self.getArchitecture() not in ['arm64', 'arm64e', 'arm64_32']:
|
||||
# Watch for write to *g_char_ptr.
|
||||
error = lldb.SBError()
|
||||
watchpoint = target.WatchAddress(
|
||||
value.GetValueAsUnsigned(), 365, False, True, error)
|
||||
self.assertFalse(watchpoint)
|
||||
self.expect(error.GetCString(), exe=False,
|
||||
substrs=['watch size of %d is not supported' % 365])
|
||||
|
||||
Reference in New Issue
Block a user