mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-27 01:28:46 +00:00
* infrun.c (normal_stop): Use has_stack_frames instead of
target_has_stack. * mi/mi-main.c (mi_execute_command): Avoid calling inferior_thread when there is no thread selected. (mi_cmd_execute): Don't special case commands that can run without a valid selected thread. * top.c (execute_command): Don't special case commands that can run without a valid selected thread. Use has_stack_frames. * infcmd.c (ensure_valid_thread): New. (continue_1, step_1, jump_command, signal_command): Use it. (detach_command): Error out if there's no selected thread/inferior. * thread.c (print_thread_info): Allow having no thread selected. (switch_to_thread): Don't read the PC if there is no current thread. (do_restore_current_thread_cleanup): Don't record the current frame if there is no current thread. (make_cleanup_restore_current_thread): Don't read frame info if there is no selected thread. (_initialize_thread): Don't mark commands as "no_selected_thread_ok". * frame.c (get_current_frame): Error out if there is no valid selected thread. (has_stack_frames): Return false if there is no valid selected thread. * cli/cli-cmds.c (init_cli_cmds): Don't mark commands as "no_selected_thread_ok". * cli/cli-decode.c (set_cmd_no_selected_thread_ok) (get_cmd_no_selected_thread_ok): Delete. * cli/cli-decode.h (CMD_NO_SELECTED_THREAD_OK): Delete. (set_cmd_no_selected_thread_ok, get_cmd_no_selected_thread_ok): Delete declaration. * stack.c (get_selected_block): Use has_stack_frames.
This commit is contained in:
24
gdb/remote.c
24
gdb/remote.c
@@ -6606,19 +6606,6 @@ remote_mourn_1 (struct target_ops *target)
|
||||
generic_mourn_inferior ();
|
||||
}
|
||||
|
||||
static int
|
||||
select_new_thread_callback (struct thread_info *th, void* data)
|
||||
{
|
||||
if (!is_exited (th->ptid))
|
||||
{
|
||||
switch_to_thread (th->ptid);
|
||||
printf_filtered (_("[Switching to %s]\n"),
|
||||
target_pid_to_str (inferior_ptid));
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
extended_remote_mourn_1 (struct target_ops *target)
|
||||
{
|
||||
@@ -6662,16 +6649,7 @@ extended_remote_mourn_1 (struct target_ops *target)
|
||||
/* Call common code to mark the inferior as not running. */
|
||||
generic_mourn_inferior ();
|
||||
|
||||
if (have_inferiors ())
|
||||
{
|
||||
extern void nullify_last_target_wait_ptid ();
|
||||
/* Multi-process case. The current process has exited, but
|
||||
there are other processes to debug. Switch to the first
|
||||
available. */
|
||||
iterate_over_threads (select_new_thread_callback, NULL);
|
||||
nullify_last_target_wait_ptid ();
|
||||
}
|
||||
else
|
||||
if (!have_inferiors ())
|
||||
{
|
||||
if (!remote_multi_process_p (rs))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user