From bc521517b7058a231a08bf8f3deae7cd41cd62d7 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 26 Dec 2021 21:49:48 -0700 Subject: [PATCH] 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. --- gdb/darwin-nat.c | 12 +----------- gdb/gnu-nat.c | 11 +---------- gdb/inf-ptrace.c | 12 +----------- gdb/nto-procfs.c | 11 +---------- gdb/procfs.c | 14 +------------- gdb/remote.c | 12 +----------- gdb/target.c | 18 ++++++++++++++++++ gdb/target.h | 5 +++++ gdb/windows-nat.c | 12 +----------- 9 files changed, 30 insertions(+), 77 deletions(-) diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c index 98720b330aa..e9c24dcc5dc 100644 --- a/gdb/darwin-nat.c +++ b/gdb/darwin-nat.c @@ -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)"), diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c index b39dfaf009c..f99aeb19347 100644 --- a/gdb/gnu-nat.c +++ b/gdb/gnu-nat.c @@ -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); diff --git a/gdb/inf-ptrace.c b/gdb/inf-ptrace.c index 521b41c6ea6..6e4706a3d20 100644 --- a/gdb/inf-ptrace.c +++ b/gdb/inf-ptrace.c @@ -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; diff --git a/gdb/nto-procfs.c b/gdb/nto-procfs.c index bf869df1dab..da0feaedff9 100644 --- a/gdb/nto-procfs.c +++ b/gdb/nto-procfs.c @@ -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); diff --git a/gdb/procfs.c b/gdb/procfs.c index 201e37c3a4b..ddc8623b1e1 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -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)); diff --git a/gdb/remote.c b/gdb/remote.c index 98003d39918..290edd07cd1 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -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); diff --git a/gdb/target.c b/gdb/target.c index 1a072297fa6..a48845d6add 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -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 diff --git a/gdb/target.h b/gdb/target.h index c629b9ba3fb..1ac7a4554dc 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -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. */ diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index 47760b7b8b8..c85f7c0d652 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -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); -- 2.30.2