================
@@ -998,6 +999,88 @@ class Target : public std::enable_shared_from_this<Target>,
   /// Resets the hit count of all breakpoints.
   void ResetBreakpointHitCounts();
 
+  // This callout implements the "Resolver Override".  When we have determined
+  // the Resolver for a given breakpoint, we pass each of the registered
+  // overrides the "natural" resolver, and then we will use whatever resolver
+  // we get back from it if it is non-null.
+  // We keep a list of overrides ordered by ID - and we search through the list
+  // by ID order, and the first override that returns a non-null Resolver will
+  // be the one we use.  If no overrides return an override resolver, we'll use
+  // the original one.
+
+  // This is the abstract version of the override.  Particular implementations
+  // e.g. the scripted
+  class BreakpointResolverOverride {
+  public:
+    BreakpointResolverOverride(Target &target, const std::string &description)
+        : m_target(target), m_desc(description) {}
+
+    virtual BreakpointResolverOverride *CopyIntoNewTarget(Target &target) = 0;
+
+    virtual ~BreakpointResolverOverride() {}
+    virtual lldb::BreakpointResolverSP
+    CheckForOverride(Target &target, lldb::BreakpointResolverSP initial_sp) {
+      return {};
+    }
+    const std::string &GetDescription() { return m_desc; }
+
+  protected:
+    Target &m_target;
+    std::string m_desc;
+  };
+
+  uint64_t AddBreakpointResolverOverride(BreakpointResolverOverride *override) 
{
+    static uint64_t g_override_id = 1;
+    uint64_t id_used = g_override_id;
----------------
JDevlieghere wrote:

Instead of an ever increasing id can we have a `m_next_override_id` per target? 
Or do these ever cross targets?

https://github.com/llvm/llvm-project/pull/195392
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to