This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Remove stop_registers


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=46c03469b37d2ccb6a1eaa3ea4e21c57d07246fc

commit 46c03469b37d2ccb6a1eaa3ea4e21c57d07246fc
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date:   Wed May 13 20:47:33 2015 +0200

    Remove stop_registers
    
    Now stop_registers are no longer used and it can be removed.
    
    I am not much sure what 'proceed_to_finish' really means now so I make a wild
    guess while updating comments about it.
    
    gdb/ChangeLog
    2015-05-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
    
    	* gdbthread.h (struct thread_control_state): Update comment for
    	proceed_to_finish.
    	* infcall.c (run_inferior_call): Update comment about
    	proceed_to_finish.
    	* infcmd.c (get_return_value): Update comment about stop_registers.
    	(finish_forward): Update comment about proceed_to_finish.
    	* infrun.c (stop_registers): Remove.
    	(clear_proceed_status, normal_stop): Remove stop_registers handling.
    	* infrun.h (stop_registers): Remove.

Diff:
---
 gdb/ChangeLog   | 12 ++++++++++++
 gdb/gdbthread.h |  2 +-
 gdb/infcall.c   |  2 +-
 gdb/infcmd.c    |  4 ++--
 gdb/infrun.c    | 27 ---------------------------
 gdb/infrun.h    |  7 -------
 6 files changed, 16 insertions(+), 38 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1d6cd4d..0b38622 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,17 @@
 2015-05-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
+	* gdbthread.h (struct thread_control_state): Update comment for
+	proceed_to_finish.
+	* infcall.c (run_inferior_call): Update comment about
+	proceed_to_finish.
+	* infcmd.c (get_return_value): Update comment about stop_registers.
+	(finish_forward): Update comment about proceed_to_finish.
+	* infrun.c (stop_registers): Remove.
+	(clear_proceed_status, normal_stop): Remove stop_registers handling.
+	* infrun.h (stop_registers): Remove.
+
+2015-05-13  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
 	* infcall.c (struct dummy_frame_context_saver)
 	(dummy_frame_context_saver_data_free, dummy_frame_context_saver_dtor)
 	(dummy_frame_context_saver_drop, dummy_frame_context_saver_cleanup)
diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h
index ff7cec2..0926f5f 100644
--- a/gdb/gdbthread.h
+++ b/gdb/gdbthread.h
@@ -118,7 +118,7 @@ struct thread_control_state
   int trap_expected;
 
   /* Nonzero if the thread is being proceeded for a "finish" command
-     or a similar situation when stop_registers should be saved.  */
+     or a similar situation when return value should be printed.  */
   int proceed_to_finish;
 
   /* Nonzero if the thread is being proceeded for an inferior function
diff --git a/gdb/infcall.c b/gdb/infcall.c
index d7515dd..5dd908d 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -398,7 +398,7 @@ run_inferior_call (struct thread_info *call_thread, CORE_ADDR real_pc)
 
   disable_watchpoints_before_interactive_call_start ();
 
-  /* We want stop_registers, please...  */
+  /* We want to print return value, please...  */
   call_thread->control.proceed_to_finish = 1;
 
   TRY
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index 3d6c4c9..03282a7 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -1519,7 +1519,7 @@ get_return_value (struct value *function, struct type *value_type,
   struct value *value;
   struct cleanup *cleanup = make_cleanup (null_cleanup, NULL);
 
-  /* If stop_registers were not saved, use the current registers.  */
+  /* If registers were not saved, use the current registers.  */
   if (ctx_saver != NULL)
     stop_regs = dummy_frame_context_saver_get_regs (ctx_saver);
   else
@@ -1786,7 +1786,7 @@ finish_forward (struct symbol *function, struct frame_info *frame)
   set_longjmp_breakpoint (tp, frame_id);
   make_cleanup (delete_longjmp_breakpoint_cleanup, &thread);
 
-  /* We want stop_registers, please...  */
+  /* We want to print return value, please...  */
   tp->control.proceed_to_finish = 1;
   cargs = xmalloc (sizeof (*cargs));
 
diff --git a/gdb/infrun.c b/gdb/infrun.c
index a4f0b9f..71cf208 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -353,13 +353,6 @@ show_stop_on_solib_events (struct ui_file *file, int from_tty,
 
 int stop_after_trap;
 
-/* Save register contents here when executing a "finish" command or are
-   about to pop a stack dummy frame, if-and-only-if proceed_to_finish is set.
-   Thus this contains the return value from the called function (assuming
-   values are returned in a register).  */
-
-struct regcache *stop_registers;
-
 /* Nonzero after stop if current stack frame should be printed.  */
 
 static int stop_print_frame;
@@ -2505,12 +2498,6 @@ clear_proceed_status (int step)
   clear_step_over_info ();
 
   observer_notify_about_to_proceed ();
-
-  if (stop_registers)
-    {
-      regcache_xfree (stop_registers);
-      stop_registers = NULL;
-    }
 }
 
 /* Returns true if TP is still stopped at a breakpoint that needs
@@ -6697,20 +6684,6 @@ normal_stop (void)
 	print_stop_event (&last);
     }
 
-  /* Save the function value return registers, if we care.
-     We might be about to restore their previous contents.  */
-  if (inferior_thread ()->control.proceed_to_finish
-      && execution_direction != EXEC_REVERSE)
-    {
-      /* 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 == STOP_STACK_DUMMY)
     {
       /* Pop the empty frame that contains the stack dummy.
diff --git a/gdb/infrun.h b/gdb/infrun.h
index 1f09e41..75bb075 100644
--- a/gdb/infrun.h
+++ b/gdb/infrun.h
@@ -73,13 +73,6 @@ enum exec_direction_kind
    compatible with make_cleanup_restore_integer.  */
 extern int execution_direction;
 
-/* Save register contents here when executing a "finish" command or
-   are about to pop a stack dummy frame, if-and-only-if
-   proceed_to_finish is set.  Thus this contains the return value from
-   the called function (assuming values are returned in a
-   register).  */
-extern struct regcache *stop_registers;
-
 extern void start_remote (int from_tty);
 
 /* Clear out all variables saying what to do when inferior is


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]