Use target_announce_detach in more targets
authorTom Tromey <tom@tromey.com>
Mon, 27 Dec 2021 05:03:09 +0000 (22:03 -0700)
committerTom Tromey <tom@tromey.com>
Thu, 6 Jan 2022 15:56:20 +0000 (08:56 -0700)
target_announce_detach was added in commit 0f48b757 ("Factor out
"Detaching from program" message printing").  There, Pedro wrote:

    (For now, I left the couple targets that print this a bit differently
    alone.  Maybe this could be further pulled out into infcmd.c.  If we
    did that, and those targets want to continue printing differently,
    this new function could be converted to a target method.)

It seems to me that the differences aren't very big, and in some cases
other targets handled the output a bit more nicely.  In particular,
some targets will print a different message when exec_file==NULL,
rather than printing the same output with an empty string as
exec_file.

This patch incorporates the nicer output into target_announce_detach,
then changes the remaining ports to use this function.

gdb/gnu-nat.c
gdb/procfs.c
gdb/target.c
gdb/windows-nat.c

index f99aeb193476f1e11a3eac1569f1f585867399f6..1d3b5f1a357725b31f1d69aca8edf0036c139c83 100644 (file)
@@ -2215,16 +2215,7 @@ gnu_nat_target::attach (const char *args, int from_tty)
 void
 gnu_nat_target::detach (inferior *inf, int from_tty)
 {
-  if (from_tty)
-    {
-      const char *exec_file = get_exec_file (0);
-
-      if (exec_file)
-       printf_unfiltered ("Detaching from program `%s' pid %d\n",
-                          exec_file, gnu_current_inf->pid);
-      else
-       printf_unfiltered ("Detaching from pid %d\n", gnu_current_inf->pid);
-    }
+  target_announce_detach (from_tty);
 
   inf_detach (gnu_current_inf);
 
index ddc8623b1e175b85d4a08ca57b348abcdd963e48..840201d18975d367327d0635c6bb2ee41325b245 100644 (file)
@@ -1786,19 +1786,7 @@ procfs_target::attach (const char *args, int from_tty)
 void
 procfs_target::detach (inferior *inf, int from_tty)
 {
-  int pid = inferior_ptid.pid ();
-
-  if (from_tty)
-    {
-      const char *exec_file;
-
-      exec_file = get_exec_file (0);
-      if (exec_file == NULL)
-       exec_file = "";
-
-      printf_filtered (_("Detaching from program: %s, %s\n"), exec_file,
-                      target_pid_to_str (ptid_t (pid)).c_str ());
-    }
+  target_announce_detach (from_tty);
 
   do_detach ();
 
index a48845d6add16a16b1a399288d2077f0e728d154..c25ce6925380c015acdd031e956d5d51ae4f13e2 100644 (file)
@@ -3628,13 +3628,14 @@ target_announce_detach (int from_tty)
   if (!from_tty)
     return;
 
-  exec_file = get_exec_file (0);
-  if (exec_file == NULL)
-    exec_file = "";
-
   pid = inferior_ptid.pid ();
-  printf_unfiltered (_("Detaching from program: %s, %s\n"), exec_file,
-                    target_pid_to_str (ptid_t (pid)).c_str ());
+  exec_file = get_exec_file (0);
+  if (exec_file == nullptr)
+    printf_unfiltered ("Detaching from pid %s\n",
+                      target_pid_to_str (ptid_t (pid)).c_str ());
+  else
+    printf_unfiltered (_("Detaching from program: %s, %s\n"), exec_file,
+                      target_pid_to_str (ptid_t (pid)).c_str ());
 }
 
 /* See target.h  */
index c85f7c0d652cf0d48de88d54e45e2efd34cd592d..bdf6ac93c49ebb955c6026f2ad065435805ca35f 100644 (file)
@@ -1962,14 +1962,8 @@ windows_nat_target::detach (inferior *inf, int from_tty)
     }
   DebugSetProcessKillOnExit (FALSE);
 
-  if (detached && from_tty)
-    {
-      const char *exec_file = get_exec_file (0);
-      if (exec_file == 0)
-       exec_file = "";
-      printf_unfiltered ("Detaching from program: %s, Pid %u\n", exec_file,
-                        (unsigned) current_event.dwProcessId);
-    }
+  if (detached)
+    target_announce_detach (from_tty);
 
   x86_cleanup_dregs ();
   switch_to_no_thread ();