[all-commits] [llvm/llvm-project] 567937: Refactor and generalize AArch64 watchpoint support...

Jason Molenda via All-commits all-commits at lists.llvm.org
Fri Apr 28 18:24:54 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5679379cc7df198a73c137e69134608833ffff8f
      https://github.com/llvm/llvm-project/commit/5679379cc7df198a73c137e69134608833ffff8f
  Author: Jason Molenda <jason at molenda.com>
  Date:   2023-04-28 (Fri, 28 Apr 2023)

  Changed paths:
    A lldb/test/API/functionalities/watchpoint/unaligned-spanning-two-dwords/Makefile
    A lldb/test/API/functionalities/watchpoint/unaligned-spanning-two-dwords/TestUnalignedSpanningDwords.py
    A lldb/test/API/functionalities/watchpoint/unaligned-spanning-two-dwords/main.c
    M lldb/tools/debugserver/source/MacOSX/arm64/DNBArchImplARM64.cpp
    M lldb/tools/debugserver/source/MacOSX/arm64/DNBArchImplARM64.h

  Log Message:
  -----------
  Refactor and generalize AArch64 watchpoint support in debugserver

Refactor the debugserver watchpiont support in anticipating of
adding support for AArch64 MASK hardware watchpoints to watch
larger regions of memory.  debugserver already had support for
handling a request to watch an unaligned region of memory up
to 8 bytes using Byte Address Select watchpoints - it would split
an unaligned watch request into two aligned doublewords that
could be watched with two hardware watchpoints using the BAS
specification.

This patch generalizes that code for properly aligning, and
possibly splitting, a watchpoint request into two hardware watchpoints
to handle any size request.  And separates out the specifics
about BAS watchpoints into its own method, so a sibling method
for MASK watchpoints can be dropped in next.

Differential Revision: https://reviews.llvm.org/D149040
rdar://108233371




More information about the All-commits mailing list