Enable async mode in the target in attach_cmd.

If the attach target supports async mode, enable it after the
attach target's ::attach method returns.
This commit is contained in:
John Baldwin
2022-02-22 11:22:14 -08:00
parent d0bbe64c5a
commit e05523bd24
5 changed files with 4 additions and 22 deletions

View File

@@ -1025,19 +1025,6 @@ fbsd_nat_target::close ()
inf_ptrace_target::close ();
}
/* Implement the "attach" target method. */
void
fbsd_nat_target::attach (const char *args, int from_tty)
{
inf_ptrace_target::attach (args, from_tty);
/* Curiously, the core does not do this automatically. */
if (target_can_async_p ())
target_async (1);
}
#ifdef TDP_RFPPWAIT
/*
To catch fork events, PT_FOLLOW_FORK is set on every traced process

View File

@@ -77,8 +77,6 @@ public:
thread_control_capabilities get_thread_control_capabilities () override
{ return tc_schedlock; }
void attach (const char *, int) override;
void create_inferior (const char *, const std::string &,
char **, int) override;

View File

@@ -2600,6 +2600,10 @@ attach_command (const char *args, int from_tty)
thread_state_string (thread->state));
}
/* Enable async mode if it is supported by the target. */
if (target_can_async_p ())
target_async (1);
/* Set up the "saved terminal modes" of the inferior
based on what modes we are starting it with. */
target_terminal::init ();

View File

@@ -1159,9 +1159,6 @@ linux_nat_target::attach (const char *args, int from_tty)
threads and associate pthread info with each LWP. */
linux_proc_attach_tgid_threads (lp->ptid.pid (),
attach_proc_task_lwp_callback);
if (target_can_async_p ())
target_async (1);
}
/* Ptrace-detach the thread with pid PID. */

View File

@@ -6183,16 +6183,12 @@ extended_remote_target::attach (const char *args, int from_tty)
= remote_notif_parse (this, &notif_client_stop, wait_status);
push_stop_reply ((struct stop_reply *) reply);
if (target_can_async_p ())
target_async (1);
}
else
{
gdb_assert (wait_status == NULL);
gdb_assert (target_can_async_p ());
target_async (1);
}
}