public inbox for gdb-testers@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] gdb: Move construct_inferior_arguments to gdbsupport
@ 2020-05-26  0:30 gdb-buildbot
  2020-05-26  0:30 ` Failures on Ubuntu-Aarch64-native-extended-gdbserver-m64, branch master gdb-buildbot
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: gdb-buildbot @ 2020-05-26  0:30 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 92651b1d91a124b8c14e45adc8d007b659cc92c2 ***

commit 92651b1d91a124b8c14e45adc8d007b659cc92c2
Author:     Michael Weghorn <m.weghorn@posteo.de>
AuthorDate: Mon May 25 11:37:44 2020 -0400
Commit:     Simon Marchi <simon.marchi@polymtl.ca>
CommitDate: Mon May 25 11:38:02 2020 -0400

    gdb: Move construct_inferior_arguments to gdbsupport
    
    This moves the function construct_inferior_arguments from
    gdb/inferior.h and gdb/infcmd.c to gdbsupport/common-inferior.{h,cc}.
    While at it, also move the function's comment to the header file
    to align with current standards.
    
    The intention is to use it from gdbserver in a follow-up commit.
    
    gdb/ChangeLog:
    
            * infcmd.c, inferior.h: (construct_inferior_arguments):
            Moved function from here to gdbsupport/common-inferior.{h,cc}
    
    gdbsupport/ChangeLog:
    
            * common-inferior.h, common-inferior.cc: (construct_inferior_arguments):
            Move function here from gdb/infcmd.c, gdb/inferior.h
    
    Change-Id: Ib9290464ce8c0872f605d8829f88352d064c30d6

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 79995c93be..a43ab08dd6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2020-05-25  Michael Weghorn  <m.weghorn@posteo.de>
+
+	* infcmd.c, inferior.h: (construct_inferior_arguments):
+	Moved function from here to gdbsupport/common-inferior.{h,cc}
+
 2020-05-23  Tom Tromey  <tom@tromey.com>
 
 	Revert commit eca1f90c:
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index 32905a7b59..cf6e540e79 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -259,130 +259,6 @@ server's cwd if remote debugging.\n"));
 			"when starting the inferior is \"%s\".\n"), cwd);
 }
 
-\f
-/* Compute command-line string given argument vector.  This does the
-   same shell processing as fork_inferior.  */
-
-char *
-construct_inferior_arguments (int argc, char **argv)
-{
-  char *result;
-
-  /* ARGC should always be at least 1, but we double check this
-     here.  This is also needed to silence -Werror-stringop
-     warnings.  */
-  gdb_assert (argc > 0);
-
-  if (startup_with_shell)
-    {
-#ifdef __MINGW32__
-      /* This holds all the characters considered special to the
-	 Windows shells.  */
-      static const char special[] = "\"!&*|[]{}<>?`~^=;, \t\n";
-      static const char quote = '"';
-#else
-      /* This holds all the characters considered special to the
-	 typical Unix shells.  We include `^' because the SunOS
-	 /bin/sh treats it as a synonym for `|'.  */
-      static const char special[] = "\"!#$&*()\\|[]{}<>?'`~^; \t\n";
-      static const char quote = '\'';
-#endif
-      int i;
-      int length = 0;
-      char *out, *cp;
-
-      /* We over-compute the size.  It shouldn't matter.  */
-      for (i = 0; i < argc; ++i)
-	length += 3 * strlen (argv[i]) + 1 + 2 * (argv[i][0] == '\0');
-
-      result = (char *) xmalloc (length);
-      out = result;
-
-      for (i = 0; i < argc; ++i)
-	{
-	  if (i > 0)
-	    *out++ = ' ';
-
-	  /* Need to handle empty arguments specially.  */
-	  if (argv[i][0] == '\0')
-	    {
-	      *out++ = quote;
-	      *out++ = quote;
-	    }
-	  else
-	    {
-#ifdef __MINGW32__
-	      int quoted = 0;
-
-	      if (strpbrk (argv[i], special))
-		{
-		  quoted = 1;
-		  *out++ = quote;
-		}
-#endif
-	      for (cp = argv[i]; *cp; ++cp)
-		{
-		  if (*cp == '\n')
-		    {
-		      /* A newline cannot be quoted with a backslash (it
-			 just disappears), only by putting it inside
-			 quotes.  */
-		      *out++ = quote;
-		      *out++ = '\n';
-		      *out++ = quote;
-		    }
-		  else
-		    {
-#ifdef __MINGW32__
-		      if (*cp == quote)
-#else
-		      if (strchr (special, *cp) != NULL)
-#endif
-			*out++ = '\\';
-		      *out++ = *cp;
-		    }
-		}
-#ifdef __MINGW32__
-	      if (quoted)
-		*out++ = quote;
-#endif
-	    }
-	}
-      *out = '\0';
-    }
-  else
-    {
-      /* In this case we can't handle arguments that contain spaces,
-	 tabs, or newlines -- see breakup_args().  */
-      int i;
-      int length = 0;
-
-      for (i = 0; i < argc; ++i)
-	{
-	  char *cp = strchr (argv[i], ' ');
-	  if (cp == NULL)
-	    cp = strchr (argv[i], '\t');
-	  if (cp == NULL)
-	    cp = strchr (argv[i], '\n');
-	  if (cp != NULL)
-	    error (_("can't handle command-line "
-		     "argument containing whitespace"));
-	  length += strlen (argv[i]) + 1;
-	}
-
-      result = (char *) xmalloc (length);
-      result[0] = '\0';
-      for (i = 0; i < argc; ++i)
-	{
-	  if (i > 0)
-	    strcat (result, " ");
-	  strcat (result, argv[i]);
-	}
-    }
-
-  return result;
-}
-\f
 
 /* This function strips the '&' character (indicating background
    execution) that is added as *the last* of the arguments ARGS of a
diff --git a/gdb/inferior.h b/gdb/inferior.h
index 1ac51369df..95af474eed 100644
--- a/gdb/inferior.h
+++ b/gdb/inferior.h
@@ -184,8 +184,6 @@ extern void child_interrupt (struct target_ops *self);
    STARTUP_INFERIOR.  */
 extern ptid_t gdb_startup_inferior (pid_t pid, int num_traps);
 
-extern char *construct_inferior_arguments (int, char **);
-
 /* From infcmd.c */
 
 /* Initial inferior setup.  Determines the exec file is not yet known,
diff --git a/gdbsupport/ChangeLog b/gdbsupport/ChangeLog
index e7374abfc2..4f72c7dd15 100644
--- a/gdbsupport/ChangeLog
+++ b/gdbsupport/ChangeLog
@@ -1,3 +1,8 @@
+2020-05-25  Michael Weghorn  <m.weghorn@posteo.de>
+
+	* common-inferior.h, common-inferior.cc: (construct_inferior_arguments):
+	Move function here from gdb/infcmd.c, gdb/inferior.h
+
 2020-05-14  Kevin Buettner  <kevinb@redhat.com>
 
 	* btrace-common.h (btrace_cpu_vendor): Add CV_AMD.
diff --git a/gdbsupport/common-inferior.cc b/gdbsupport/common-inferior.cc
index ed16e89a52..a7d631f357 100644
--- a/gdbsupport/common-inferior.cc
+++ b/gdbsupport/common-inferior.cc
@@ -24,3 +24,125 @@
 /* See common-inferior.h.  */
 
 bool startup_with_shell = true;
+
+/* See common-inferior.h.  */
+
+char *
+construct_inferior_arguments (int argc, char **argv)
+{
+  char *result;
+
+  /* ARGC should always be at least 1, but we double check this
+     here.  This is also needed to silence -Werror-stringop
+     warnings.  */
+  gdb_assert (argc > 0);
+
+  if (startup_with_shell)
+    {
+#ifdef __MINGW32__
+      /* This holds all the characters considered special to the
+	 Windows shells.  */
+      static const char special[] = "\"!&*|[]{}<>?`~^=;, \t\n";
+      static const char quote = '"';
+#else
+      /* This holds all the characters considered special to the
+	 typical Unix shells.  We include `^' because the SunOS
+	 /bin/sh treats it as a synonym for `|'.  */
+      static const char special[] = "\"!#$&*()\\|[]{}<>?'`~^; \t\n";
+      static const char quote = '\'';
+#endif
+      int i;
+      int length = 0;
+      char *out, *cp;
+
+      /* We over-compute the size.  It shouldn't matter.  */
+      for (i = 0; i < argc; ++i)
+	length += 3 * strlen (argv[i]) + 1 + 2 * (argv[i][0] == '\0');
+
+      result = (char *) xmalloc (length);
+      out = result;
+
+      for (i = 0; i < argc; ++i)
+	{
+	  if (i > 0)
+	    *out++ = ' ';
+
+	  /* Need to handle empty arguments specially.  */
+	  if (argv[i][0] == '\0')
+	    {
+	      *out++ = quote;
+	      *out++ = quote;
+	    }
+	  else
+	    {
+#ifdef __MINGW32__
+	      int quoted = 0;
+
+	      if (strpbrk (argv[i], special))
+		{
+		  quoted = 1;
+		  *out++ = quote;
+		}
+#endif
+	      for (cp = argv[i]; *cp; ++cp)
+		{
+		  if (*cp == '\n')
+		    {
+		      /* A newline cannot be quoted with a backslash (it
+			 just disappears), only by putting it inside
+			 quotes.  */
+		      *out++ = quote;
+		      *out++ = '\n';
+		      *out++ = quote;
+		    }
+		  else
+		    {
+#ifdef __MINGW32__
+		      if (*cp == quote)
+#else
+		      if (strchr (special, *cp) != NULL)
+#endif
+			*out++ = '\\';
+		      *out++ = *cp;
+		    }
+		}
+#ifdef __MINGW32__
+	      if (quoted)
+		*out++ = quote;
+#endif
+	    }
+	}
+      *out = '\0';
+    }
+  else
+    {
+      /* In this case we can't handle arguments that contain spaces,
+	 tabs, or newlines -- see breakup_args().  */
+      int i;
+      int length = 0;
+
+      for (i = 0; i < argc; ++i)
+	{
+	  char *cp = strchr (argv[i], ' ');
+	  if (cp == NULL)
+	    cp = strchr (argv[i], '\t');
+	  if (cp == NULL)
+	    cp = strchr (argv[i], '\n');
+	  if (cp != NULL)
+	    error (_("can't handle command-line "
+		     "argument containing whitespace"));
+	  length += strlen (argv[i]) + 1;
+	}
+
+      result = (char *) xmalloc (length);
+      result[0] = '\0';
+      for (i = 0; i < argc; ++i)
+	{
+	  if (i > 0)
+	    strcat (result, " ");
+	  strcat (result, argv[i]);
+	}
+    }
+
+  return result;
+}
diff --git a/gdbsupport/common-inferior.h b/gdbsupport/common-inferior.h
index 3c8e87aee6..ee87bc75a3 100644
--- a/gdbsupport/common-inferior.h
+++ b/gdbsupport/common-inferior.h
@@ -58,4 +58,8 @@ extern void set_inferior_cwd (const char *cwd);
    the target is started up with a shell.  */
 extern bool startup_with_shell;
 
+/* Compute command-line string given argument vector. This does the
+   same shell processing as fork_inferior.  */
+extern char *construct_inferior_arguments (int, char **);
+
 #endif /* COMMON_COMMON_INFERIOR_H */


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2020-06-20 16:36 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-26  0:30 [binutils-gdb] gdb: Move construct_inferior_arguments to gdbsupport gdb-buildbot
2020-05-26  0:30 ` Failures on Ubuntu-Aarch64-native-extended-gdbserver-m64, branch master gdb-buildbot
2020-06-20 14:04 ` Failures on Fedora-i686, " gdb-buildbot
2020-06-20 14:41 ` Failures on Fedora-x86_64-cc-with-index, " gdb-buildbot
2020-06-20 15:15 ` Failures on Fedora-x86_64-m64, " gdb-buildbot
2020-06-20 15:29 ` Failures on Fedora-x86_64-native-extended-gdbserver-m32, " gdb-buildbot
2020-06-20 15:59 ` Failures on Fedora-x86_64-native-extended-gdbserver-m64, " gdb-buildbot
2020-06-20 16:04 ` Failures on Fedora-x86_64-native-gdbserver-m32, " gdb-buildbot
2020-06-20 16:36 ` Failures on Fedora-x86_64-native-gdbserver-m64, " gdb-buildbot

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).