aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog16
-rw-r--r--gdb/gdbthread.h2
-rw-r--r--gdb/infcmd.c12
-rw-r--r--gdb/inferior.h2
-rw-r--r--gdb/infrun.c23
-rw-r--r--gdb/thread.c4
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;