aboutsummaryrefslogtreecommitdiff
path: root/gdb/common
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/common')
-rw-r--r--gdb/common/common-inferior.h33
-rw-r--r--gdb/common/common-utils.c24
-rw-r--r--gdb/common/common-utils.h4
3 files changed, 61 insertions, 0 deletions
diff --git a/gdb/common/common-inferior.h b/gdb/common/common-inferior.h
new file mode 100644
index 0000000..87c1300
--- /dev/null
+++ b/gdb/common/common-inferior.h
@@ -0,0 +1,33 @@
+/* Functions to deal with the inferior being executed on GDB or
+ GDBserver.
+
+ Copyright (C) 1986-2017 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#ifndef COMMON_INFERIOR_H
+#define COMMON_INFERIOR_H
+
+/* Return the exec wrapper to be used when starting the inferior, or NULL
+ otherwise. */
+extern const char *get_exec_wrapper ();
+
+/* Return the name of the executable file as a string.
+ ERR nonzero means get error if there is none specified;
+ otherwise return 0 in that case. */
+extern char *get_exec_file (int err);
+
+#endif /* ! COMMON_INFERIOR_H */
diff --git a/gdb/common/common-utils.c b/gdb/common/common-utils.c
index e94fdc4..793ab3b 100644
--- a/gdb/common/common-utils.c
+++ b/gdb/common/common-utils.c
@@ -18,6 +18,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "common-defs.h"
+#include "common-utils.h"
#include "host-defs.h"
#include <ctype.h>
@@ -328,3 +329,26 @@ free_vector_argv (std::vector<char *> &v)
v.clear ();
}
+
+/* See common/common-utils.h. */
+
+std::string
+stringify_argv (const std::vector<char *> &args)
+{
+ std::string ret;
+
+ if (!args.empty ())
+ {
+ for (auto s : args)
+ if (s != NULL)
+ {
+ ret += s;
+ ret += ' ';
+ }
+
+ /* Erase the last whitespace. */
+ ret.erase (ret.end () - 1);
+ }
+
+ return ret;
+}
diff --git a/gdb/common/common-utils.h b/gdb/common/common-utils.h
index c331f0d..787bac9 100644
--- a/gdb/common/common-utils.h
+++ b/gdb/common/common-utils.h
@@ -108,4 +108,8 @@ extern const char *skip_to_space_const (const char *inp);
freeing all the elements. */
extern void free_vector_argv (std::vector<char *> &v);
+/* Given a vector of arguments ARGV, return a string equivalent to
+ joining all the arguments with a whitespace separating them. */
+extern std::string stringify_argv (const std::vector<char *> &argv);
+
#endif