summaryrefslogtreecommitdiff
path: root/patches/ltrace/0.7.3/006-unexpected-breakpoint.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/ltrace/0.7.3/006-unexpected-breakpoint.patch')
-rw-r--r--patches/ltrace/0.7.3/006-unexpected-breakpoint.patch22
1 files changed, 22 insertions, 0 deletions
diff --git a/patches/ltrace/0.7.3/006-unexpected-breakpoint.patch b/patches/ltrace/0.7.3/006-unexpected-breakpoint.patch
new file mode 100644
index 0000000..443bee4
--- /dev/null
+++ b/patches/ltrace/0.7.3/006-unexpected-breakpoint.patch
@@ -0,0 +1,22 @@
+From: Juan Cespedes <cespedes@debian.org>
+Description: continue after unexpected breakpoint
+ (instead of decrementing PC and execute int3 again and again)
+Last-Update: 2014-01-03
+
+
+--- ltrace-0.7.3.orig/handle_event.c
++++ ltrace-0.7.3/handle_event.c
+@@ -656,9 +656,12 @@ handle_breakpoint(Event *event)
+
+ if ((sbp = address2bpstruct(leader, brk_addr)) != NULL)
+ breakpoint_on_hit(sbp, event->proc);
+- else if (event->proc->state != STATE_IGNORED)
++ else if (event->proc->state != STATE_IGNORED) {
+ output_line(event->proc,
+ "unexpected breakpoint at %p", brk_addr);
++ continue_process(event->proc->pid);
++ return;
++ }
+
+ /* breakpoint_on_hit may delete its own breakpoint, so we have
+ * to look it up again. */