Implement proc_remove_breakpoint
diff --git a/breakpoints.c b/breakpoints.c
index 07430af..36f5e72 100644
--- a/breakpoints.c
+++ b/breakpoints.c
@@ -228,15 +228,13 @@
 void
 delete_breakpoint(Process *proc, void *addr)
 {
-	struct breakpoint *sbp;
-
 	debug(DEBUG_FUNCTION, "delete_breakpoint(pid=%d, addr=%p)", proc->pid, addr);
 
 	Process * leader = proc->leader;
 	assert(leader != NULL);
 
-	sbp = dict_find_entry(leader->breakpoints, addr);
-	assert(sbp);		/* FIXME: remove after debugging has been done. */
+	struct breakpoint *sbp = dict_find_entry(leader->breakpoints, addr);
+	assert(sbp != NULL);
 	/* This should only happen on out-of-memory conditions. */
 	if (sbp == NULL)
 		return;
@@ -246,6 +244,11 @@
 			breakpoint_name(sbp), sbp->addr);
 		return;
 	}
+	if (sbp->enabled == 0) {
+		proc_remove_breakpoint(leader, sbp);
+		breakpoint_destroy(sbp);
+		free(sbp);
+	}
 }
 
 const char *