public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] Introduce target_announce_attach
@ 2022-01-06 15:57 Tom Tromey
  0 siblings, 0 replies; only message in thread
From: Tom Tromey @ 2022-01-06 15:57 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=bc521517b7058a231a08bf8f3deae7cd41cd62d7

commit bc521517b7058a231a08bf8f3deae7cd41cd62d7
Author: Tom Tromey <tom@tromey.com>
Date:   Sun Dec 26 21:49:48 2021 -0700

    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.

Diff:
---
 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);


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-01-06 15:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-06 15:57 [binutils-gdb] Introduce target_announce_attach Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).