diff options
author | Jason Molenda <jmolenda@apple.com> | 2024-02-05 18:45:01 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-05 18:45:01 -0800 |
commit | 5953532615595918d006ace2ad83fe33d1cd3915 (patch) | |
tree | 0059810a9a588b16f85e8f10a1153463c9b521c5 /lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp | |
parent | 8f80df0f52c4294d23d0510b01be6d6491714058 (diff) | |
download | llvm-5953532615595918d006ace2ad83fe33d1cd3915.zip llvm-5953532615595918d006ace2ad83fe33d1cd3915.tar.gz llvm-5953532615595918d006ace2ad83fe33d1cd3915.tar.bz2 |
[lldb] Add QSupported key to report watchpoint types supported (#80376)
debugserver on arm64 devices can manage both Byte Address Select
watchpoints (1-8 bytes) and MASK watchpoints (8 bytes-2 gigabytes). This
adds a SupportedWatchpointTypes key to the QSupported response from
debugserver with a list of these, so lldb can take full advantage of
them when creating larger regions with a single hardware watchpoint.
Also add documentation for this, and two other lldb extensions, to the
lldb-gdb-remote.txt documentation.
Re-enable TestLargeWatchpoint.py on Darwin systems when testing with the
in-tree built debugserver. I can remove the "in-tree built debugserver"
in the future when this new key is handled by an Xcode debugserver.
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp')
-rw-r--r-- | lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp index 4e3447e..629b191 100644 --- a/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp +++ b/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp @@ -3156,16 +3156,7 @@ Status ProcessGDBRemote::EnableWatchpoint(WatchpointSP wp_sp, bool notify) { ArchSpec target_arch = GetTarget().GetArchitecture(); WatchpointHardwareFeature supported_features = - eWatchpointHardwareFeatureUnknown; - - // LWP_TODO: enable MASK watchpoint for arm64 debugserver - // when it reports that it supports them. - if (target_arch.GetTriple().getOS() == llvm::Triple::MacOSX && - target_arch.GetTriple().getArch() == llvm::Triple::aarch64) { -#if 0 - supported_features |= eWatchpointHardwareArmMASK; -#endif - } + m_gdb_comm.GetSupportedWatchpointTypes(); std::vector<WatchpointResourceSP> resources = WatchpointAlgorithms::AtomizeWatchpointRequest( |