summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--debugger.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/debugger.c b/debugger.c
index 173acbd..33bdbc0 100644
--- a/debugger.c
+++ b/debugger.c
@@ -96,7 +96,12 @@ static void uninstall_breakpoints(struct thread *th) {
b->installed = 0;
}
- if (b->previously_installed && b->enabled < 0) {
+ if (b->step) {
+ struct breakpoint *del = b;
+ b = b->next;
+ list_remove(del);
+ free(del);
+ } else if (b->enabled < 0 && b->previously_installed) {
struct thread *t = NULL;
if (b->tid == 0 || ((t = thread_by_id(th->proc, b->tid)) && !t->doing)) {
struct breakpoint *del = b;