mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-05-28 22:21:26 +08:00
2000-03-30 Michael Snyder <msnyder@cleaver.cygnus.com>
* defs.h (struct continuation_arg): make 'data' a union, to avoid casting problems when int and pointer are not the same size. * event-top.c (command_handler): use data as a union. (command_line_handler_continuation): ditto. * infcmd.c (step_1_continuation): use data as a union. Re-indent. (step_once): ditto. (finish_command_continuation): ditto. (finish_command): ditto. * breakpoint.c (until_break_command): use data as a union. (until_break_command_continuation): ditto. * utils.c (add_intermediate_continuation): fix typo in comment.
This commit is contained in:
52
gdb/infcmd.c
52
gdb/infcmd.c
@ -576,27 +576,27 @@ static void
|
||||
step_1_continuation (arg)
|
||||
struct continuation_arg *arg;
|
||||
{
|
||||
int count;
|
||||
int skip_subroutines;
|
||||
int single_inst;
|
||||
int count;
|
||||
int skip_subroutines;
|
||||
int single_inst;
|
||||
|
||||
skip_subroutines = (int) arg->data;
|
||||
single_inst = (int) (arg->next)->data;
|
||||
count = (int) ((arg->next)->next)->data;
|
||||
skip_subroutines = arg->data.integer;
|
||||
single_inst = arg->next->data.integer;
|
||||
count = arg->next->next->data.integer;
|
||||
|
||||
if (stop_step)
|
||||
{
|
||||
/* FIXME: On nexti, this may have already been done (when we hit the
|
||||
step resume break, I think). Probably this should be moved to
|
||||
wait_for_inferior (near the top). */
|
||||
if (stop_step)
|
||||
{
|
||||
/* FIXME: On nexti, this may have already been done (when we hit the
|
||||
step resume break, I think). Probably this should be moved to
|
||||
wait_for_inferior (near the top). */
|
||||
#if defined (SHIFT_INST_REGS)
|
||||
SHIFT_INST_REGS ();
|
||||
SHIFT_INST_REGS ();
|
||||
#endif
|
||||
step_once (skip_subroutines, single_inst, count - 1);
|
||||
}
|
||||
else
|
||||
if (!single_inst || skip_subroutines)
|
||||
do_exec_cleanups (ALL_CLEANUPS);
|
||||
step_once (skip_subroutines, single_inst, count - 1);
|
||||
}
|
||||
else
|
||||
if (!single_inst || skip_subroutines)
|
||||
do_exec_cleanups (ALL_CLEANUPS);
|
||||
}
|
||||
|
||||
/* Do just one step operation. If count >1 we will have to set up a
|
||||
@ -662,11 +662,11 @@ which has no line number information.\n", name);
|
||||
arg3 =
|
||||
(struct continuation_arg *) xmalloc (sizeof (struct continuation_arg));
|
||||
arg1->next = arg2;
|
||||
arg1->data = (PTR) skip_subroutines;
|
||||
arg1->data.integer = skip_subroutines;
|
||||
arg2->next = arg3;
|
||||
arg2->data = (PTR) single_inst;
|
||||
arg2->data.integer = single_inst;
|
||||
arg3->next = NULL;
|
||||
arg3->data = (PTR) count;
|
||||
arg3->data.integer = count;
|
||||
add_intermediate_continuation (step_1_continuation, arg1);
|
||||
proceed ((CORE_ADDR) -1, TARGET_SIGNAL_DEFAULT, 1);
|
||||
}
|
||||
@ -1108,9 +1108,9 @@ finish_command_continuation (arg)
|
||||
struct breakpoint *breakpoint;
|
||||
struct cleanup *cleanups;
|
||||
|
||||
breakpoint = (struct breakpoint *) arg->data;
|
||||
function = (struct symbol *) (arg->next)->data;
|
||||
cleanups = (struct cleanup *) (arg->next->next)->data;
|
||||
breakpoint = (struct breakpoint *) arg->data.pointer;
|
||||
function = (struct symbol *) arg->next->data.pointer;
|
||||
cleanups = (struct cleanup *) arg->next->next->data.pointer;
|
||||
|
||||
if (bpstat_find_breakpoint (stop_bpstat, breakpoint) != NULL
|
||||
&& function != 0)
|
||||
@ -1225,9 +1225,9 @@ finish_command (arg, from_tty)
|
||||
arg1->next = arg2;
|
||||
arg2->next = arg3;
|
||||
arg3->next = NULL;
|
||||
arg1->data = (PTR) breakpoint;
|
||||
arg2->data = (PTR) function;
|
||||
arg3->data = (PTR) old_chain;
|
||||
arg1->data.pointer = breakpoint;
|
||||
arg2->data.pointer = function;
|
||||
arg3->data.pointer = old_chain;
|
||||
add_continuation (finish_command_continuation, arg1);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user