import gdb-2000-01-10 snapshot

This commit is contained in:
Jason Molenda 2000-01-11 03:07:37 +00:00
parent 3b7c8b7414
commit 0d06e24ba7
29 changed files with 1163 additions and 721 deletions

View file

@ -5215,10 +5215,10 @@ awatch_command (arg, from_tty)
static void
until_break_command_continuation (struct continuation_arg *arg)
{
/* Do all the exec cleanups, which at this point should only be the
one set up in the first part of the until_break_command
function. */
do_exec_cleanups (ALL_CLEANUPS);
struct cleanup *cleanups;
cleanups = (struct cleanup *) arg->data;
do_exec_cleanups (cleanups);
}
/* ARGSUSED */
@ -5232,6 +5232,8 @@ until_break_command (arg, from_tty)
struct frame_info *prev_frame = get_prev_frame (selected_frame);
struct breakpoint *breakpoint;
struct cleanup *old_chain;
struct continuation_arg *arg1;
clear_proceed_status ();
@ -5262,7 +5264,7 @@ until_break_command (arg, from_tty)
old_chain = make_cleanup ((make_cleanup_func) delete_breakpoint,
breakpoint);
else
make_exec_cleanup ((make_cleanup_func) delete_breakpoint, breakpoint);
old_chain = make_exec_cleanup ((make_cleanup_func) delete_breakpoint, breakpoint);
/* If we are running asynchronously, and the target supports async
execution, we are not waiting for the target to stop, in the call
@ -5273,11 +5275,16 @@ until_break_command (arg, from_tty)
if (event_loop_p && target_can_async_p ())
{
/* In this case we don't need args for the continuation, because
all it needs to do is do the cleanups in the
exec_cleanup_chain, which will be only those inserted by this
function. We can get away by using ALL_CLEANUPS. */
add_continuation (until_break_command_continuation, NULL);
/* In this case the arg for the continuation is just the point
in the exec_cleanups chain from where to start doing
cleanups, because all the continuation does is the cleanups in
the exec_cleanup_chain. */
arg1 =
(struct continuation_arg *) xmalloc (sizeof (struct continuation_arg));
arg1->next = NULL;
arg1->data = (PTR) old_chain;
add_continuation (until_break_command_continuation, arg1);
}
/* Keep within the current frame */