Drop bp_callbacks.on_destroy
Unless until it turns out it's really needed, in which case drop the
arch_breakpoint_data customization and convert current uses to the
OO model.
diff --git a/breakpoint.h b/breakpoint.h
index 30a9d7c..0509304 100644
--- a/breakpoint.h
+++ b/breakpoint.h
@@ -63,9 +63,8 @@
struct breakpoint;
struct bp_callbacks {
- void (*on_hit) (struct breakpoint *bp, struct Process *proc);
- void (*on_continue) (struct breakpoint *bp, struct Process *proc);
- void (*on_destroy) (struct breakpoint *bp);
+ void (*on_hit)(struct breakpoint *bp, struct Process *proc);
+ void (*on_continue)(struct breakpoint *bp, struct Process *proc);
};
struct breakpoint {
@@ -80,7 +79,7 @@
/* Call on-hit handler of BP, if any is set. */
void breakpoint_on_hit(struct breakpoint *bp, struct Process *proc);
-/* Call on-reenable handler of BP. If none is set, call
+/* Call on-continue handler of BP. If none is set, call
* continue_after_breakpoint. */
void breakpoint_on_continue(struct breakpoint *bp, struct Process *proc);
diff --git a/breakpoints.c b/breakpoints.c
index ab0e688..dd1a010 100644
--- a/breakpoints.c
+++ b/breakpoints.c
@@ -98,11 +98,6 @@
if (bp == NULL)
return;
- /* XXX I'm not convinced that we need on_destroy. We already
- * have arch_breakpoint_destroy, which is necessary as a
- * counterpart of arch_breakpoint_init in any case. */
- if (bp->cbs != NULL && bp->cbs->on_destroy != NULL)
- (bp->cbs->on_destroy) (bp);
arch_breakpoint_destroy(bp);
}
@@ -283,6 +278,13 @@
dict_apply_to_all(proc->breakpoints, disable_bp_cb, proc);
}
+/* XXX This is not currently properly supported. On clone, this is
+ * just sliced. Hopefully at the point that clone is done, this
+ * breakpoint is not necessary anymore. If this use case ends up
+ * being important, we need to add a clone and destroy callbacks to
+ * breakpoints, and we should also probably drop arch_breakpoint_data
+ * so that we don't end up with two different customization mechanisms
+ * for one structure. */
struct entry_breakpoint {
struct breakpoint super;
target_address_t dyn_addr;
@@ -299,11 +301,6 @@
linkmap_init(proc, bp->dyn_addr);
}
-static void
-entry_breakpoint_on_destroy(struct breakpoint *a)
-{
-}
-
int
entry_breakpoint_init(struct Process *proc,
struct entry_breakpoint *bp, target_address_t addr,
@@ -315,7 +312,6 @@
static struct bp_callbacks entry_callbacks = {
.on_hit = entry_breakpoint_on_hit,
- .on_destroy = entry_breakpoint_on_destroy,
};
bp->super.cbs = &entry_callbacks;
bp->dyn_addr = lib->dyn_addr;