aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2015-05-13 20:47:33 +0200
committerJan Kratochvil <jan.kratochvil@redhat.com>2015-05-13 20:49:45 +0200
commit46c03469b37d2ccb6a1eaa3ea4e21c57d07246fc (patch)
tree6e552b82178f9bbf56116455bdedc4aa1e2da165 /gdb
parent8a6c40311297f60ad13827650fdde13da301b505 (diff)
downloadgdb-46c03469b37d2ccb6a1eaa3ea4e21c57d07246fc.zip
gdb-46c03469b37d2ccb6a1eaa3ea4e21c57d07246fc.tar.gz
gdb-46c03469b37d2ccb6a1eaa3ea4e21c57d07246fc.tar.bz2
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.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog12
-rw-r--r--gdb/gdbthread.h2
-rw-r--r--gdb/infcall.c2
-rw-r--r--gdb/infcmd.c4
-rw-r--r--gdb/infrun.c27
-rw-r--r--gdb/infrun.h7
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