diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/infrun.c | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b4b455c..583e090 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2007-12-06 Daniel Jacobowitz <dan@codesourcery.com> + + * infrun.c (init_wait_for_inferior): Reset target_last_wait_ptid. + (handle_inferior_event): Clear stop_stack_dummy earlier. + 2007-12-06 Jim Blandy <jimb@codesourcery.com> * addrmap.c (addrmap_splay_tree_remove): New function. diff --git a/gdb/infrun.c b/gdb/infrun.c index 9fc79b6..44a18ad 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -912,6 +912,8 @@ init_wait_for_inferior (void) stepping_past_singlestep_breakpoint = 0; deferred_step_ptid = null_ptid; + + target_last_wait_ptid = minus_one_ptid; } /* This enum encodes possible reasons for doing a target_wait, so that @@ -1275,6 +1277,9 @@ handle_inferior_event (struct execution_control_state *ecs) target_last_wait_ptid = ecs->ptid; target_last_waitstatus = *ecs->wp; + /* Always clear state belonging to the previous time we stopped. */ + stop_stack_dummy = 0; + adjust_pc_after_break (ecs); switch (ecs->infwait_state) @@ -1893,7 +1898,6 @@ handle_inferior_event (struct execution_control_state *ecs) ecs->stepping_over_breakpoint = 0; bpstat_clear (&stop_bpstat); stop_step = 0; - stop_stack_dummy = 0; stop_print_frame = 1; ecs->random_signal = 0; stopped_by_random_signal = 0; |