* infrun.c (struct inferior_status, save_inferior_status)
	(restore_inferior_status): Group and reorder the fields, comment their
	groups.
This commit is contained in:
Jan Kratochvil 2010-11-24 19:05:46 +00:00
parent 2edb89d30e
commit d82142e25d
2 changed files with 51 additions and 26 deletions

View File

@ -1,3 +1,9 @@
2010-11-24 Jan Kratochvil <jan.kratochvil@redhat.com>
* infrun.c (struct inferior_status, save_inferior_status)
(restore_inferior_status): Group and reorder the fields, comment their
groups.
2010-11-24 Jan Kratochvil <jan.kratochvil@redhat.com> 2010-11-24 Jan Kratochvil <jan.kratochvil@redhat.com>
Code cleanup. Code cleanup.

View File

@ -6160,29 +6160,35 @@ get_inferior_thread_state_regcache (struct inferior_thread_state *inf_state)
/* Session related state for inferior function calls. /* Session related state for inferior function calls.
These are the additional bits of state that need to be restored These are the additional bits of state that need to be restored
when an inferior function call successfully completes. */ when an inferior function call successfully completes.
Keep the fields in order as present in their original structures. */
struct inferior_status struct inferior_status
{ {
bpstat stop_bpstat; /* Direct copies of the struct thread_info fields: */
int stop_step;
enum stop_stack_kind stop_stack_dummy;
int stopped_by_random_signal;
int stepping_over_breakpoint;
CORE_ADDR step_range_start; CORE_ADDR step_range_start;
CORE_ADDR step_range_end; CORE_ADDR step_range_end;
struct frame_id step_frame_id; struct frame_id step_frame_id;
struct frame_id step_stack_frame_id; struct frame_id step_stack_frame_id;
int stepping_over_breakpoint;
int proceed_to_finish;
int in_infcall;
enum step_over_calls_kind step_over_calls; enum step_over_calls_kind step_over_calls;
int stop_step;
bpstat stop_bpstat;
/* Direct copies of the struct inferior fields: */
int stop_soon;
/* Other fields: */
enum stop_stack_kind stop_stack_dummy;
int stopped_by_random_signal;
CORE_ADDR step_resume_break_address; CORE_ADDR step_resume_break_address;
int stop_after_trap; int stop_after_trap;
int stop_soon;
/* ID if the selected frame when the inferior function call was made. */ /* ID if the selected frame when the inferior function call was made. */
struct frame_id selected_frame_id; struct frame_id selected_frame_id;
int proceed_to_finish;
int in_infcall;
}; };
/* Save all of the information associated with the inferior<==>gdb /* Save all of the information associated with the inferior<==>gdb
@ -6195,25 +6201,31 @@ save_inferior_status (void)
struct thread_info *tp = inferior_thread (); struct thread_info *tp = inferior_thread ();
struct inferior *inf = current_inferior (); struct inferior *inf = current_inferior ();
inf_status->stop_step = tp->stop_step; /* Direct copies of the struct thread_info fields: */
inf_status->stop_stack_dummy = stop_stack_dummy;
inf_status->stopped_by_random_signal = stopped_by_random_signal;
inf_status->stepping_over_breakpoint = tp->trap_expected;
inf_status->step_range_start = tp->step_range_start; inf_status->step_range_start = tp->step_range_start;
inf_status->step_range_end = tp->step_range_end; inf_status->step_range_end = tp->step_range_end;
inf_status->step_frame_id = tp->step_frame_id; inf_status->step_frame_id = tp->step_frame_id;
inf_status->step_stack_frame_id = tp->step_stack_frame_id; inf_status->step_stack_frame_id = tp->step_stack_frame_id;
inf_status->stepping_over_breakpoint = tp->trap_expected;
inf_status->proceed_to_finish = tp->proceed_to_finish;
inf_status->in_infcall = tp->in_infcall;
inf_status->step_over_calls = tp->step_over_calls; inf_status->step_over_calls = tp->step_over_calls;
inf_status->stop_after_trap = stop_after_trap; inf_status->stop_step = tp->stop_step;
inf_status->stop_soon = inf->stop_soon;
/* Save original bpstat chain here; replace it with copy of chain. /* Save original bpstat chain here; replace it with copy of chain.
If caller's caller is walking the chain, they'll be happier if we If caller's caller is walking the chain, they'll be happier if we
hand them back the original chain when restore_inferior_status is hand them back the original chain when restore_inferior_status is
called. */ called. */
inf_status->stop_bpstat = tp->stop_bpstat; inf_status->stop_bpstat = tp->stop_bpstat;
tp->stop_bpstat = bpstat_copy (tp->stop_bpstat); tp->stop_bpstat = bpstat_copy (tp->stop_bpstat);
inf_status->proceed_to_finish = tp->proceed_to_finish;
inf_status->in_infcall = tp->in_infcall; /* Direct copies of the struct inferior fields: */
inf_status->stop_soon = inf->stop_soon;
/* Other fields: */
inf_status->stop_stack_dummy = stop_stack_dummy;
inf_status->stopped_by_random_signal = stopped_by_random_signal;
inf_status->stop_after_trap = stop_after_trap;
inf_status->selected_frame_id = get_frame_id (get_selected_frame (NULL)); inf_status->selected_frame_id = get_frame_id (get_selected_frame (NULL));
@ -6249,22 +6261,29 @@ restore_inferior_status (struct inferior_status *inf_status)
struct thread_info *tp = inferior_thread (); struct thread_info *tp = inferior_thread ();
struct inferior *inf = current_inferior (); struct inferior *inf = current_inferior ();
tp->stop_step = inf_status->stop_step; /* Direct copies of the struct thread_info fields: */
stop_stack_dummy = inf_status->stop_stack_dummy;
stopped_by_random_signal = inf_status->stopped_by_random_signal;
tp->trap_expected = inf_status->stepping_over_breakpoint;
tp->step_range_start = inf_status->step_range_start; tp->step_range_start = inf_status->step_range_start;
tp->step_range_end = inf_status->step_range_end; tp->step_range_end = inf_status->step_range_end;
tp->step_frame_id = inf_status->step_frame_id; tp->step_frame_id = inf_status->step_frame_id;
tp->step_stack_frame_id = inf_status->step_stack_frame_id; tp->step_stack_frame_id = inf_status->step_stack_frame_id;
tp->trap_expected = inf_status->stepping_over_breakpoint;
tp->proceed_to_finish = inf_status->proceed_to_finish;
tp->in_infcall = inf_status->in_infcall;
tp->step_over_calls = inf_status->step_over_calls; tp->step_over_calls = inf_status->step_over_calls;
stop_after_trap = inf_status->stop_after_trap; tp->stop_step = inf_status->stop_step;
inf->stop_soon = inf_status->stop_soon;
/* Handle the bpstat_copy of the chain. */
bpstat_clear (&tp->stop_bpstat); bpstat_clear (&tp->stop_bpstat);
tp->stop_bpstat = inf_status->stop_bpstat; tp->stop_bpstat = inf_status->stop_bpstat;
inf_status->stop_bpstat = NULL; inf_status->stop_bpstat = NULL;
tp->proceed_to_finish = inf_status->proceed_to_finish;
tp->in_infcall = inf_status->in_infcall; /* Direct copies of the struct inferior fields: */
inf->stop_soon = inf_status->stop_soon;
/* Other fields: */
stop_stack_dummy = inf_status->stop_stack_dummy;
stopped_by_random_signal = inf_status->stopped_by_random_signal;
stop_after_trap = inf_status->stop_after_trap;
if (target_has_stack) if (target_has_stack)
{ {