diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2007-06-22 12:38:04 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2007-06-22 12:38:04 +0000 |
commit | d5c314579277bf073441af801bb40c3ff7e33f7b (patch) | |
tree | b7a5b037eb090c2de4e5bffbc786aaf853a8d4f0 /gdb/infrun.c | |
parent | 911c95a5ae8f914319f5384146f1f05c1c59fe74 (diff) | |
download | ppe42-binutils-d5c314579277bf073441af801bb40c3ff7e33f7b.tar.gz ppe42-binutils-d5c314579277bf073441af801bb40c3ff7e33f7b.zip |
* infrun.c (clear_proceed_status): Clean up stop_registers.
(normal_stop): Allocate regcache for stop_registers.
(struct inferior_status): Remove stop_registers member.
(save_inferior_status): Do not save stop_registers.
(restore_inferior_status): Do not restore stop_registers.
(discard_inferior_status): Do not discard stop_registers.
(build_infrun): Remove.
(_initialize_infrun): Do not swap stop_registers.
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r-- | gdb/infrun.c | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c index bad50a1eca..27d78b13fd 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -632,6 +632,12 @@ clear_proceed_status (void) proceed_to_finish = 0; breakpoint_proceeded = 1; /* We're about to proceed... */ + if (stop_registers) + { + regcache_xfree (stop_registers); + stop_registers = NULL; + } + /* Discard any remaining commands or status from previous stop. */ bpstat_clear (&stop_bpstat); } @@ -3218,9 +3224,15 @@ Further execution is probably impossible.\n")); /* Save the function value return registers, if we care. We might be about to restore their previous contents. */ if (proceed_to_finish) - /* NB: The copy goes through to the target picking up the value of - all the registers. */ - regcache_cpy (stop_registers, get_current_regcache ()); + { + /* This should not be necessary. */ + if (stop_registers) + regcache_xfree (stop_registers); + + /* NB: The copy goes through to the target picking up the value of + all the registers. */ + stop_registers = regcache_dup (get_current_regcache ()); + } if (stop_stack_dummy) { @@ -3619,7 +3631,6 @@ struct inferior_status CORE_ADDR step_resume_break_address; int stop_after_trap; int stop_soon; - struct regcache *stop_registers; /* These are here because if call_function_by_hand has written some registers and then decides to call error(), we better not have changed @@ -3675,8 +3686,6 @@ save_inferior_status (int restore_stack_info) inf_status->restore_stack_info = restore_stack_info; inf_status->proceed_to_finish = proceed_to_finish; - inf_status->stop_registers = regcache_dup_no_passthrough (stop_registers); - inf_status->registers = regcache_dup (get_current_regcache ()); inf_status->selected_frame_id = get_frame_id (get_selected_frame (NULL)); @@ -3724,10 +3733,6 @@ restore_inferior_status (struct inferior_status *inf_status) breakpoint_proceeded = inf_status->breakpoint_proceeded; proceed_to_finish = inf_status->proceed_to_finish; - /* FIXME: Is the restore of stop_registers always needed. */ - regcache_xfree (stop_registers); - stop_registers = inf_status->stop_registers; - /* The inferior can be gone if the user types "print exit(0)" (and perhaps other times). */ if (target_has_execution) @@ -3778,7 +3783,6 @@ discard_inferior_status (struct inferior_status *inf_status) /* See save_inferior_status for info on stop_bpstat. */ bpstat_clear (&inf_status->stop_bpstat); regcache_xfree (inf_status->registers); - regcache_xfree (inf_status->stop_registers); xfree (inf_status); } @@ -3921,12 +3925,6 @@ save_inferior_ptid (void) } -static void -build_infrun (void) -{ - stop_registers = regcache_xmalloc (current_gdbarch); -} - void _initialize_infrun (void) { @@ -3934,9 +3932,6 @@ _initialize_infrun (void) int numsigs; struct cmd_list_element *c; - DEPRECATED_REGISTER_GDBARCH_SWAP (stop_registers); - deprecated_register_gdbarch_swap (NULL, 0, build_infrun); - add_info ("signals", signals_info, _("\ What debugger does when program gets various signals.\n\ Specify a signal as argument to print info on that signal only.")); |