diff options
-rw-r--r-- | gdb/ChangeLog | 16 | ||||
-rw-r--r-- | gdb/gdbthread.h | 2 | ||||
-rw-r--r-- | gdb/infcmd.c | 12 | ||||
-rw-r--r-- | gdb/inferior.h | 2 | ||||
-rw-r--r-- | gdb/infrun.c | 23 | ||||
-rw-r--r-- | gdb/thread.c | 4 |
6 files changed, 32 insertions, 27 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e8cc0a7..f35f93b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,21 @@ 2008-09-08 Pedro Alves <pedro@codesourcery.com> + * inferior.h (step_over_calls): Delete. + + * gdbthread.h (save_infrun_state, load_infrun_state): Remove + step_over_calls argument. + * thread.c (save_infrun_state, load_infrun_state): Remove + step_over_calls argument. Adjust. + + * infcmd.c (step_over_calls): Delete. + (step_1): Adjust. + * infrun.c (clear_proceed_status): Adjust. + (context_switch): Don't context-switch step_over_calls. + (handle_inferior_event, save_inferior_status) + (restore_inferior_status): Adjust. + +2008-09-08 Pedro Alves <pedro@codesourcery.com> + Remove context switching in favour of accessing thread_info fields directly. diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h index ea13ba5..953a1d2 100644 --- a/gdb/gdbthread.h +++ b/gdb/gdbthread.h @@ -219,7 +219,6 @@ extern void save_infrun_state (ptid_t ptid, struct continuation *continuations, struct continuation *intermediate_continuations, int proceed_to_finish, - enum step_over_calls_kind step_over_calls, int stop_step, int step_multi, enum target_signal stop_signal, @@ -231,7 +230,6 @@ extern void load_infrun_state (ptid_t ptid, struct continuation **continuations, struct continuation **intermediate_continuations, int *proceed_to_finish, - enum step_over_calls_kind *step_over_calls, int *stop_step, int *step_multi, enum target_signal *stop_signal, diff --git a/gdb/infcmd.c b/gdb/infcmd.c index 160606f..d6b9d02 100644 --- a/gdb/infcmd.c +++ b/gdb/infcmd.c @@ -177,8 +177,6 @@ int stop_stack_dummy; int stopped_by_random_signal; -enum step_over_calls_kind step_over_calls; - /* If stepping, nonzero means step count is > 1 so don't print frame next time inferior stops if it stops due to stepping. */ @@ -819,11 +817,11 @@ which has no line number information.\n"), name); /* It is stepi. Don't step over function calls, not even to functions lacking line numbers. */ - step_over_calls = STEP_OVER_NONE; + tp->step_over_calls = STEP_OVER_NONE; } if (skip_subroutines) - step_over_calls = STEP_OVER_ALL; + tp->step_over_calls = STEP_OVER_ALL; step_multi = (count > 1); proceed ((CORE_ADDR) -1, TARGET_SIGNAL_DEFAULT, 1); @@ -937,11 +935,11 @@ which has no line number information.\n"), name); /* It is stepi. Don't step over function calls, not even to functions lacking line numbers. */ - step_over_calls = STEP_OVER_NONE; + tp->step_over_calls = STEP_OVER_NONE; } if (skip_subroutines) - step_over_calls = STEP_OVER_ALL; + tp->step_over_calls = STEP_OVER_ALL; step_multi = (count > 1); proceed ((CORE_ADDR) -1, TARGET_SIGNAL_DEFAULT, 1); @@ -1171,7 +1169,7 @@ until_next_command (int from_tty) tp->step_range_end = sal.end; } - step_over_calls = STEP_OVER_ALL; + tp->step_over_calls = STEP_OVER_ALL; tp->step_frame_id = get_frame_id (frame); step_multi = 0; /* Only one call to proceed */ diff --git a/gdb/inferior.h b/gdb/inferior.h index 5555e91..05f7ae6 100644 --- a/gdb/inferior.h +++ b/gdb/inferior.h @@ -319,8 +319,6 @@ enum step_over_calls_kind STEP_OVER_UNDEBUGGABLE }; -extern enum step_over_calls_kind step_over_calls; - /* If stepping, nonzero means step count is > 1 so don't print frame next time inferior stops if it stops due to stepping. */ diff --git a/gdb/infrun.c b/gdb/infrun.c index b525edf..1f89921 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -1104,9 +1104,9 @@ clear_proceed_status (void) tp->step_range_start = 0; tp->step_range_end = 0; tp->step_frame_id = null_frame_id; + tp->step_over_calls = STEP_OVER_UNDEBUGGABLE; } - step_over_calls = STEP_OVER_UNDEBUGGABLE; stop_after_trap = 0; stop_soon = NO_STOP_QUIETLY; proceed_to_finish = 0; @@ -1715,7 +1715,6 @@ context_switch (ptid_t ptid) save_infrun_state (inferior_ptid, cmd_continuation, intermediate_continuation, proceed_to_finish, - step_over_calls, stop_step, step_multi, stop_signal, @@ -1725,7 +1724,6 @@ context_switch (ptid_t ptid) load_infrun_state (ptid, &cmd_continuation, &intermediate_continuation, &proceed_to_finish, - &step_over_calls, &stop_step, &step_multi, &stop_signal, @@ -3038,7 +3036,7 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (!gdbarch_get_longjmp_target)\n"); loader dynamic symbol resolution code, we keep on single stepping until we exit the run time loader code and reach the callee's address. */ - if (step_over_calls == STEP_OVER_UNDEBUGGABLE + if (ecs->event_thread->step_over_calls == STEP_OVER_UNDEBUGGABLE && in_solib_dynsym_resolve_code (stop_pc)) { CORE_ADDR pc_after_resolver = @@ -3063,8 +3061,8 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (!gdbarch_get_longjmp_target)\n"); } if (ecs->event_thread->step_range_end != 1 - && (step_over_calls == STEP_OVER_UNDEBUGGABLE - || step_over_calls == STEP_OVER_ALL) + && (ecs->event_thread->step_over_calls == STEP_OVER_UNDEBUGGABLE + || ecs->event_thread->step_over_calls == STEP_OVER_ALL) && get_frame_type (get_current_frame ()) == SIGTRAMP_FRAME) { if (debug_infrun) @@ -3096,7 +3094,7 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (!gdbarch_get_longjmp_target)\n"); if (debug_infrun) fprintf_unfiltered (gdb_stdlog, "infrun: stepped into subroutine\n"); - if ((step_over_calls == STEP_OVER_NONE) + if ((ecs->event_thread->step_over_calls == STEP_OVER_NONE) || ((ecs->event_thread->step_range_end == 1) && in_prologue (ecs->event_thread->prev_pc, ecs->stop_func_start))) @@ -3113,7 +3111,7 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (!gdbarch_get_longjmp_target)\n"); return; } - if (step_over_calls == STEP_OVER_ALL) + if (ecs->event_thread->step_over_calls == STEP_OVER_ALL) { /* We're doing a "next", set a breakpoint at callee's return address (the address at which the caller will @@ -3166,7 +3164,8 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (!gdbarch_get_longjmp_target)\n"); /* If we have no line number and the step-stop-if-no-debug is set, we stop the step so that the user has a chance to switch in assembly mode. */ - if (step_over_calls == STEP_OVER_UNDEBUGGABLE && step_stop_if_no_debug) + if (ecs->event_thread->step_over_calls == STEP_OVER_UNDEBUGGABLE + && step_stop_if_no_debug) { stop_step = 1; print_stop_reason (END_STEPPING_RANGE, 0); @@ -3221,7 +3220,7 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (!gdbarch_get_longjmp_target)\n"); /* NOTE: tausq/2004-05-24: This if block used to be done before all the trampoline processing logic, however, there are some trampolines that have no names, so we should do trampoline handling first. */ - if (step_over_calls == STEP_OVER_UNDEBUGGABLE + if (ecs->event_thread->step_over_calls == STEP_OVER_UNDEBUGGABLE && ecs->stop_func_name == NULL && stop_pc_sal.line == 0) { @@ -4372,7 +4371,7 @@ save_inferior_status (int restore_stack_info) inf_status->step_range_start = tp->step_range_start; inf_status->step_range_end = tp->step_range_end; inf_status->step_frame_id = tp->step_frame_id; - inf_status->step_over_calls = step_over_calls; + inf_status->step_over_calls = tp->step_over_calls; inf_status->stop_after_trap = stop_after_trap; inf_status->stop_soon = stop_soon; /* Save original bpstat chain here; replace it with copy of chain. @@ -4426,7 +4425,7 @@ restore_inferior_status (struct inferior_status *inf_status) tp->step_range_start = inf_status->step_range_start; tp->step_range_end = inf_status->step_range_end; tp->step_frame_id = inf_status->step_frame_id; - 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; stop_soon = inf_status->stop_soon; bpstat_clear (&stop_bpstat); diff --git a/gdb/thread.c b/gdb/thread.c index 3aedb45..875c55f 100644 --- a/gdb/thread.c +++ b/gdb/thread.c @@ -446,7 +446,6 @@ load_infrun_state (ptid_t ptid, struct continuation **continuations, struct continuation **intermediate_continuations, int *proceed_to_finish, - enum step_over_calls_kind *step_over_calls, int *stop_step, int *step_multi, enum target_signal *stop_signal, @@ -469,7 +468,6 @@ load_infrun_state (ptid_t ptid, *intermediate_continuations = tp->intermediate_continuations; tp->intermediate_continuations = NULL; *proceed_to_finish = tp->proceed_to_finish; - *step_over_calls = tp->step_over_calls; *stop_step = tp->stop_step; *step_multi = tp->step_multi; *stop_signal = tp->stop_signal; @@ -488,7 +486,6 @@ save_infrun_state (ptid_t ptid, struct continuation *continuations, struct continuation *intermediate_continuations, int proceed_to_finish, - enum step_over_calls_kind step_over_calls, int stop_step, int step_multi, enum target_signal stop_signal, @@ -509,7 +506,6 @@ save_infrun_state (ptid_t ptid, tp->continuations = continuations; tp->intermediate_continuations = intermediate_continuations; tp->proceed_to_finish = proceed_to_finish; - tp->step_over_calls = step_over_calls; tp->stop_step = stop_step; tp->step_multi = step_multi; tp->stop_signal = stop_signal; |