From: Tom Tromey <tom@tromey.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tom@tromey.com>
Subject: [PATCH 1/2] Introduce target_announce_attach
Date: Wed, 5 Jan 2022 10:59:15 -0700 [thread overview]
Message-ID: <20220105175916.2969966-2-tom@tromey.com> (raw)
In-Reply-To: <20220105175916.2969966-1-tom@tromey.com>
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 4b22e21bb8e..ad870c94d63 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 7ae71d9d519..e27da7ca2d2 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 e10b295c797..65b98c5a9b8 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 76332541f8e..89084acabaa 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -1932,17 +1932,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.31.1
next prev parent reply other threads:[~2022-01-05 18:00 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-05 17:59 [PATCH 0/2] Unify target announce and detach messages Tom Tromey
2022-01-05 17:59 ` Tom Tromey [this message]
2022-01-08 15:07 ` [PATCH 1/2] Introduce target_announce_attach Lancelot SIX via Gdb-patches
2022-01-08 16:47 ` Tom Tromey
2022-01-05 17:59 ` [PATCH 2/2] Use target_announce_detach in more targets Tom Tromey
2022-01-05 18:47 ` [PATCH 0/2] Unify target announce and detach messages John Baldwin
2022-01-08 11:16 ` Joel Brobecker via Gdb-patches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220105175916.2969966-2-tom@tromey.com \
--to=tom@tromey.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox