aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>2024-02-05 18:45:01 -0800
committerGitHub <noreply@github.com>2024-02-05 18:45:01 -0800
commit5953532615595918d006ace2ad83fe33d1cd3915 (patch)
tree0059810a9a588b16f85e8f10a1153463c9b521c5 /lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
parent8f80df0f52c4294d23d0510b01be6d6491714058 (diff)
downloadllvm-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.cpp11
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(