char *(*deprecated_readline_hook) (char *);
void (*deprecated_readline_end_hook) (void);
-/* Called as appropriate to notify the interface of the specified breakpoint
- conditions. */
-
-void (*deprecated_create_breakpoint_hook) (struct breakpoint * bpt);
-void (*deprecated_delete_breakpoint_hook) (struct breakpoint * bpt);
-void (*deprecated_modify_breakpoint_hook) (struct breakpoint * bpt);
-
/* Called as appropriate to notify the interface that we have attached
to or detached from an already running process. */
/* Execute the line P as a command.
Pass FROM_TTY as second argument to the defining function. */
+/* Execute command P, in the current user context. */
+
void
execute_command (char *p, int from_tty)
{
enum language flang;
static int warned = 0;
char *line;
- struct continuation_arg *arg1;
- struct continuation_arg *arg2;
long time_at_cmd_start = 0;
#ifdef HAVE_SBRK
long space_at_cmd_start = 0;
c = lookup_cmd (&p, cmdlist, "", 0, 1);
- /* If the target is running, we allow only a limited set of
- commands. */
+ /* If the selected thread has terminated, we allow only a
+ limited set of commands. */
if (target_can_async_p ()
- && any_running ()
- && !get_cmd_async_ok (c))
- error (_("Cannot execute this command while the target is running."));
+ && is_exited (inferior_ptid)
+ && !get_cmd_no_selected_thread_ok (c))
+ error (_("\
+Cannot execute this command without a live selected thread. See `help thread'."));
/* Pass null arg rather than an empty one. */
arg = *p ? p : 0;
/* FIXME: This should be cacheing the frame and only running when
the frame changes. */
- if (target_has_stack && !is_running (inferior_ptid))
+ if (target_has_stack && is_stopped (inferior_ptid))
{
flang = get_frame_language ();
if (!warned
}
execute_command (command, instream == stdin);
- /* Do any commands attached to breakpoint we stopped at. */
- bpstat_do_actions (&stop_bpstat);
+
+ /* Do any commands attached to breakpoint we are stopped at. */
+ bpstat_do_actions ();
+
do_cleanups (old_chain);
if (display_time)
target_kill ();
}
- /* UDI wants this, to kill the TIP. */
- target_close (¤t_target, 1);
+ /* Give all pushed targets a chance to do minimal cleanup, and pop
+ them all out. */
+ pop_all_targets (1);
/* Save the history information if it is appropriate to do so. */
if (write_history_p && history_filename)