================
@@ -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