[5/6] Remove stop_registers
Commit Message
Hi,
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.
Jan
gdb/ChangeLog
2015-05-08 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.
---
gdb/gdbthread.h | 2 +-
gdb/infcall.c | 2 +-
gdb/infcmd.c | 4 ++--
gdb/infrun.c | 27 ---------------------------
gdb/infrun.h | 7 -------
5 files changed, 4 insertions(+), 38 deletions(-)
Comments
I'll comment on patch #4 once I grok it fully, but meanwhile...
> --- 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 were not saved, use the current registers. */
A word after "If" is missing, I guess:
"If registers were not saved, ..."
Otherwise looks fine.
This variable should probably be renamed and its comments
further clarified, but what you have is good already. We can
do that separately.
Thanks,
Pedro Alves
On Wed, 13 May 2015 15:10:15 +0200, Pedro Alves wrote:
> > - /* If stop_registers were not saved, use the current registers. */
> > + /* If were not saved, use the current registers. */
>
> A word after "If" is missing, I guess:
>
> "If registers were not saved, ..."
Yes, done.
> Otherwise looks fine.
Checked in:
46c03469b37d2ccb6a1eaa3ea4e21c57d07246fc
Jan
@@ -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
@@ -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
@@ -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 were not saved, use the current registers. */
if (dtor_data != NULL)
stop_regs = call_function_by_hand_dtor_get (dtor_data);
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));
@@ -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.
@@ -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