aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2021-12-26 21:49:48 -0700
committerTom Tromey <tom@tromey.com>2022-01-06 08:56:20 -0700
commitbc521517b7058a231a08bf8f3deae7cd41cd62d7 (patch)
treeae7a824e59ff285cd070bc89d41e286f786e55a5 /gdb
parent10a85f29c74ab562db622cfc4f58997e859c6ed6 (diff)
downloadgdb-bc521517b7058a231a08bf8f3deae7cd41cd62d7.zip
gdb-bc521517b7058a231a08bf8f3deae7cd41cd62d7.tar.gz
gdb-bc521517b7058a231a08bf8f3deae7cd41cd62d7.tar.bz2
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.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/darwin-nat.c12
-rw-r--r--gdb/gnu-nat.c11
-rw-r--r--gdb/inf-ptrace.c12
-rw-r--r--gdb/nto-procfs.c11
-rw-r--r--gdb/procfs.c14
-rw-r--r--gdb/remote.c12
-rw-r--r--gdb/target.c18
-rw-r--r--gdb/target.h5
-rw-r--r--gdb/windows-nat.c12
9 files changed, 30 insertions, 77 deletions
diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c
index 98720b3..e9c24dc 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 b39dfaf..f99aeb1 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 521b41c..6e4706a 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 bf869df..da0feae 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 201e37c..ddc8623 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 98003d3..290edd0 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 1a07229..a48845d 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 c629b9b..1ac7a45 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 47760b7..c85f7c0 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);