Introduce target_announce_attach

This introduces target_announce_attach, by analog with
target_announce_detach.  Then it converts existing targets to use
this, rather than emitting their own output by hand.
This commit is contained in:
Tom Tromey 2021-12-26 21:49:48 -07:00
parent 10a85f29c7
commit bc521517b7
9 changed files with 30 additions and 77 deletions

View File

@ -2002,17 +2002,7 @@ darwin_nat_target::attach (const char *args, int from_tty)
if (pid == getpid ()) /* Trying to masturbate? */
error (_("I refuse to debug myself!"));
if (from_tty)
{
const char *exec_file = get_exec_file (0);
if (exec_file)
printf_unfiltered (_("Attaching to program: %s, %s\n"), exec_file,
target_pid_to_str (ptid_t (pid)).c_str ());
else
printf_unfiltered (_("Attaching to %s\n"),
target_pid_to_str (ptid_t (pid)).c_str ());
}
target_announce_attach (from_tty, pid);
if (pid == 0 || ::kill (pid, 0) < 0)
error (_("Can't attach to process %d: %s (%d)"),

View File

@ -2170,16 +2170,7 @@ gnu_nat_target::attach (const char *args, int from_tty)
if (pid == getpid ()) /* Trying to masturbate? */
error (_("I refuse to debug myself!"));
if (from_tty)
{
const char *exec_file = get_exec_file (0);
if (exec_file)
printf_unfiltered ("Attaching to program `%s', pid %d\n",
exec_file, pid);
else
printf_unfiltered ("Attaching to pid %d\n", pid);
}
target_announce_attach (from_tty, pid);
inf_debug (inf, "attaching to pid: %d", pid);

View File

@ -148,17 +148,7 @@ inf_ptrace_target::attach (const char *args, int from_tty)
unpusher.reset (this);
}
if (from_tty)
{
const char *exec_file = get_exec_file (0);
if (exec_file)
printf_unfiltered (_("Attaching to program: %s, %s\n"), exec_file,
target_pid_to_str (ptid_t (pid)).c_str ());
else
printf_unfiltered (_("Attaching to %s\n"),
target_pid_to_str (ptid_t (pid)).c_str ());
}
target_announce_attach (from_tty, pid);
#ifdef PT_ATTACH
errno = 0;

View File

@ -701,17 +701,8 @@ nto_procfs_target::attach (const char *args, int from_tty)
if (pid == getpid ())
error (_("Attaching GDB to itself is not a good idea..."));
if (from_tty)
{
const char *exec_file = get_exec_file (0);
target_announce_attach (from_tty, pid);
if (exec_file)
printf_unfiltered ("Attaching to program `%s', %s\n", exec_file,
target_pid_to_str (ptid_t (pid)).c_str ());
else
printf_unfiltered ("Attaching to %s\n",
target_pid_to_str (ptid_t (pid)).c_str ());
}
ptid_t ptid = do_attach (ptid_t (pid));
inf = current_inferior ();
inferior_appeared (inf, pid);

View File

@ -1775,19 +1775,7 @@ procfs_target::attach (const char *args, int from_tty)
unpusher.reset (this);
}
if (from_tty)
{
const char *exec_file = get_exec_file (0);
if (exec_file)
printf_filtered (_("Attaching to program `%s', %s\n"),
exec_file, target_pid_to_str (ptid_t (pid)).c_str ());
else
printf_filtered (_("Attaching to %s\n"),
target_pid_to_str (ptid_t (pid)).c_str ());
fflush (stdout);
}
target_announce_attach (from_tty, pid);
do_attach (ptid_t (pid));

View File

@ -6115,17 +6115,7 @@ extended_remote_target::attach (const char *args, int from_tty)
if (packet_support (PACKET_vAttach) == PACKET_DISABLE)
error (_("This target does not support attaching to a process"));
if (from_tty)
{
const char *exec_file = get_exec_file (0);
if (exec_file)
printf_unfiltered (_("Attaching to program: %s, %s\n"), exec_file,
target_pid_to_str (ptid_t (pid)).c_str ());
else
printf_unfiltered (_("Attaching to %s\n"),
target_pid_to_str (ptid_t (pid)).c_str ());
}
target_announce_attach (from_tty, pid);
xsnprintf (rs->buf.data (), get_remote_packet_size (), "vAttach;%x", pid);
putpkt (rs->buf);

View File

@ -3637,6 +3637,24 @@ target_announce_detach (int from_tty)
target_pid_to_str (ptid_t (pid)).c_str ());
}
/* See target.h */
void
target_announce_attach (int from_tty, int pid)
{
if (!from_tty)
return;
const char *exec_file = get_exec_file (0);
if (exec_file)
printf_unfiltered ("Attaching to program: %s, %s\n", exec_file,
target_pid_to_str (ptid_t (pid)).c_str ());
else
printf_unfiltered ("Attaching to %s\n",
target_pid_to_str (ptid_t (pid)).c_str ());
}
/* The inferior process has died. Long live the inferior! */
void

View File

@ -1448,6 +1448,11 @@ extern bool target_attach_no_wait ();
extern void target_post_attach (int pid);
/* Display a message indicating we're about to attach to a given
process. */
extern void target_announce_attach (int from_tty, int pid);
/* Display a message indicating we're about to detach from the current
inferior process. */

View File

@ -1929,17 +1929,7 @@ windows_nat_target::attach (const char *args, int from_tty)
DebugSetProcessKillOnExit (FALSE);
if (from_tty)
{
const char *exec_file = get_exec_file (0);
if (exec_file)
printf_unfiltered ("Attaching to program `%s', %s\n", exec_file,
target_pid_to_str (ptid_t (pid)).c_str ());
else
printf_unfiltered ("Attaching to %s\n",
target_pid_to_str (ptid_t (pid)).c_str ());
}
target_announce_attach (from_tty, pid);
#ifdef __x86_64__
HANDLE h = OpenProcess (PROCESS_QUERY_INFORMATION, FALSE, pid);