mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-28 06:20:30 +00: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:
parent
59233f88f1
commit
57e687d9ad
@ -1,3 +1,16 @@
|
||||
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.
|
||||
|
||||
Thu Mar 30 12:09:50 2000 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* gdbarch.h, gdbarch.c: Re-indent. Remove FIXMEs.
|
||||
|
@ -5708,7 +5708,7 @@ until_break_command_continuation (struct continuation_arg *arg)
|
||||
{
|
||||
struct cleanup *cleanups;
|
||||
|
||||
cleanups = (struct cleanup *) arg->data;
|
||||
cleanups = (struct cleanup *) arg->data.pointer;
|
||||
do_exec_cleanups (cleanups);
|
||||
}
|
||||
|
||||
@ -5772,8 +5772,8 @@ until_break_command (arg, from_tty)
|
||||
the exec_cleanup_chain. */
|
||||
arg1 =
|
||||
(struct continuation_arg *) xmalloc (sizeof (struct continuation_arg));
|
||||
arg1->next = NULL;
|
||||
arg1->data = (PTR) old_chain;
|
||||
arg1->next = NULL;
|
||||
arg1->data.pointer = old_chain;
|
||||
|
||||
add_continuation (until_break_command_continuation, arg1);
|
||||
}
|
||||
|
@ -650,7 +650,11 @@ extern void free_command_lines (struct command_line **);
|
||||
struct continuation_arg
|
||||
{
|
||||
struct continuation_arg *next;
|
||||
void *data;
|
||||
union continuation_data {
|
||||
void *pointer;
|
||||
int integer;
|
||||
long longint;
|
||||
} data;
|
||||
};
|
||||
|
||||
struct continuation
|
||||
|
@ -525,8 +525,8 @@ command_handler (char *command)
|
||||
(struct continuation_arg *) xmalloc (sizeof (struct continuation_arg));
|
||||
arg1->next = arg2;
|
||||
arg2->next = NULL;
|
||||
arg1->data = (void *) time_at_cmd_start;
|
||||
arg2->data = (void *) space_at_cmd_start;
|
||||
arg1->data.integer = time_at_cmd_start;
|
||||
arg2->data.integer = space_at_cmd_start;
|
||||
add_continuation (command_line_handler_continuation, arg1);
|
||||
}
|
||||
|
||||
@ -572,8 +572,8 @@ command_line_handler_continuation (struct continuation_arg *arg)
|
||||
extern int display_time;
|
||||
extern int display_space;
|
||||
|
||||
long time_at_cmd_start = (long) arg->data;
|
||||
long space_at_cmd_start = (long) arg->next->data;
|
||||
long time_at_cmd_start = arg->data.longint;
|
||||
long space_at_cmd_start = arg->next->data.longint;
|
||||
|
||||
bpstat_do_actions (&stop_bpstat);
|
||||
/*do_cleanups (old_chain); *//*?????FIXME????? */
|
||||
|
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);
|
||||
}
|
||||
|
||||
|
@ -456,7 +456,7 @@ discard_all_continuations ()
|
||||
}
|
||||
}
|
||||
|
||||
/* Add a continuation to the continuation list, the gloabl list
|
||||
/* Add a continuation to the continuation list, the global list
|
||||
intermediate_continuation. The new continuation will be added at the front.*/
|
||||
void
|
||||
add_intermediate_continuation (continuation_hook, arg_list)
|
||||
|
Loading…
Reference in New Issue
Block a user