aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2012-07-18 18:04:39 +0000
committerPedro Alves <palves@redhat.com>2012-07-18 18:04:39 +0000
commiteab402dfcc7dc809c501ab4ebfe9feba17355b4d (patch)
treed7c65d4b51264da34cf06d1dfd40de6731fef627
parent7c960184ffea6eac8e0d3da0fed7b80b6668acde (diff)
downloadgdb-eab402dfcc7dc809c501ab4ebfe9feba17355b4d.zip
gdb-eab402dfcc7dc809c501ab4ebfe9feba17355b4d.tar.gz
gdb-eab402dfcc7dc809c501ab4ebfe9feba17355b4d.tar.bz2
2012-07-18 Pedro Alves <palves@redhat.com>
* infrun.c (handle_inferior_event) <TARGET_WAITKIND_NO_HISTORY>: Pull the single step breakpoints out of the target.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/infrun.c9
2 files changed, 14 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 31f15c2..0f15a84 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2012-07-18 Pedro Alves <palves@redhat.com>
+
+ * infrun.c (handle_inferior_event) <TARGET_WAITKIND_NO_HISTORY>:
+ Pull the single step breakpoints out of the target.
+
2012-07-18 Sergio Durigan Junior <sergiodj@redhat.com>
* probe.c (probe_safe_evaluate_at_pc): Rename variable `n_probes'.
diff --git a/gdb/infrun.c b/gdb/infrun.c
index bd209f7..49a442c 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -3669,6 +3669,15 @@ handle_inferior_event (struct execution_control_state *ecs)
if (debug_infrun)
fprintf_unfiltered (gdb_stdlog, "infrun: TARGET_WAITKIND_NO_HISTORY\n");
/* Reverse execution: target ran out of history info. */
+
+ /* Pull the single step breakpoints out of the target. */
+ if (singlestep_breakpoints_inserted_p)
+ {
+ if (!ptid_equal (ecs->ptid, inferior_ptid))
+ context_switch (ecs->ptid);
+ remove_single_step_breakpoints ();
+ singlestep_breakpoints_inserted_p = 0;
+ }
stop_pc = regcache_read_pc (get_thread_regcache (ecs->ptid));
print_no_history_reason ();
stop_stepping (ecs);