[Lldb-commits] [lldb] [lldb] Add QSupported key to report watchpoint types supported (PR #80376)

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Fri Feb 2 06:07:54 PST 2024


================
@@ -403,6 +403,22 @@ void GDBRemoteCommunicationClient::GetRemoteQSupported() {
         x.split(compressions, ',');
         if (!compressions.empty())
           MaybeEnableCompression(compressions);
+      } else if (x.consume_front("SupportedWatchpointTypes=")) {
+        llvm::SmallVector<llvm::StringRef, 4> watchpoint_types;
+        x.split(watchpoint_types, ',');
+        m_watchpoint_types =
+            WatchpointHardwareFeature::eWatchpointHardwareFeatureUnknown;
+        for (auto wp_type : watchpoint_types) {
+          if (wp_type == "x86_64")
+            m_watchpoint_types |=
+                WatchpointHardwareFeature::eWatchpointHardwareX86;
+          if (wp_type == "aarch64-mask")
+            m_watchpoint_types |=
+                WatchpointHardwareFeature::eWatchpointHardwareArmMASK;
+          if (wp_type == "aarch64-bas")
+            m_watchpoint_types |=
+                WatchpointHardwareFeature::eWatchpointHardwareArmBAS;
+        }
----------------
DavidSpickett wrote:

Please put this string -> enum code next to the enum if possible. Perhaps `eWatchpointHardwareFeatureUnknown` could be the fallback value, assuming that that is 0.

Then you can loop over the strings here doing:
m_watchpoint_types |= stringToType(..);

And we'll have one place to update/reference in future.

https://github.com/llvm/llvm-project/pull/80376


More information about the lldb-commits mailing list