aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/corefile.c13
-rw-r--r--gdb/darwin-nat.c3
-rw-r--r--gdb/exec.c9
-rw-r--r--gdb/exec.h5
-rw-r--r--gdb/gnu-nat.c3
-rw-r--r--gdb/go32-nat.c6
-rw-r--r--gdb/inf-ptrace.c3
-rw-r--r--gdb/nat/fork-inferior.c16
-rw-r--r--gdb/nto-procfs.c7
-rw-r--r--gdb/procfs.c3
-rw-r--r--gdb/symfile.c4
-rw-r--r--gdbserver/server.cc11
-rw-r--r--gdbsupport/common-inferior.h5
13 files changed, 41 insertions, 47 deletions
diff --git a/gdb/corefile.c b/gdb/corefile.c
index aa35e3a..96052cf 100644
--- a/gdb/corefile.c
+++ b/gdb/corefile.c
@@ -76,19 +76,6 @@ validate_files (void)
}
}
-/* See gdbsupport/common-inferior.h. */
-
-const char *
-get_exec_file ()
-{
- if (current_program_space->exec_filename () != nullptr)
- return current_program_space->exec_filename ();
-
- error (_("No executable file specified.\n\
-Use the \"file\" or \"exec-file\" command."));
-}
-
-
std::string
memory_error_message (enum target_xfer_status err,
struct gdbarch *gdbarch, CORE_ADDR memaddr)
diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c
index 2b68cf6..7ba1fbb 100644
--- a/gdb/darwin-nat.c
+++ b/gdb/darwin-nat.c
@@ -1969,6 +1969,9 @@ darwin_nat_target::create_inferior (const char *exec_file,
const std::string &allargs,
char **env, int from_tty)
{
+ if (exec_file == nullptr)
+ no_executable_specified_error ();
+
std::optional<scoped_restore_tmpl<bool>> restore_startup_with_shell;
darwin_nat_target *the_target = this;
diff --git a/gdb/exec.c b/gdb/exec.c
index 496f3b1..63eee42 100644
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -504,6 +504,15 @@ exec_file_attach (const char *filename, int from_tty)
gdb::observers::executable_changed.notify (current_program_space, reload_p);
}
+/* See exec.h. */
+
+void
+no_executable_specified_error ()
+{
+ error (_("No executable file specified.\n\
+Use the \"file\" or \"exec-file\" command."));
+}
+
/* Process the first arg in ARGS as the new exec file.
Note that we have to explicitly ignore additional args, since we can
diff --git a/gdb/exec.h b/gdb/exec.h
index f667f23..0c1f604 100644
--- a/gdb/exec.h
+++ b/gdb/exec.h
@@ -105,4 +105,9 @@ extern void print_section_info (const std::vector<target_section> *table,
extern void try_open_exec_file (const char *exec_file_host,
struct inferior *inf,
symfile_add_flags add_flags);
+
+/* Report a "No executable file specified" error. */
+
+extern void no_executable_specified_error ();
+
#endif
diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
index 198fc42..1d3e523 100644
--- a/gdb/gnu-nat.c
+++ b/gdb/gnu-nat.c
@@ -2103,6 +2103,9 @@ gnu_nat_target::create_inferior (const char *exec_file,
char **env,
int from_tty)
{
+ if (exec_file == nullptr)
+ no_executable_specified_error ();
+
struct inf *inf = cur_inf ();
inferior *inferior = current_inferior ();
int pid;
diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c
index f59a7ed..8453366 100644
--- a/gdb/go32-nat.c
+++ b/gdb/go32-nat.c
@@ -681,10 +681,8 @@ go32_nat_target::create_inferior (const char *exec_file,
int result;
const char *args = allargs.c_str ();
- /* If no exec file handed to us, get it from the exec-file command -- with
- a good, common error message if none is specified. */
- if (exec_file == 0)
- exec_file = get_exec_file ();
+ if (exec_file == nullptr)
+ no_executable_specified_error ();
resume_signal = -1;
resume_is_step = 0;
diff --git a/gdb/inf-ptrace.c b/gdb/inf-ptrace.c
index ce303eb..acb80af 100644
--- a/gdb/inf-ptrace.c
+++ b/gdb/inf-ptrace.c
@@ -75,6 +75,9 @@ inf_ptrace_target::create_inferior (const char *exec_file,
const std::string &allargs,
char **env, int from_tty)
{
+ if (exec_file == nullptr)
+ no_executable_specified_error ();
+
inferior *inf = current_inferior ();
/* Do not change either targets above or the same target if already present.
diff --git a/gdb/nat/fork-inferior.c b/gdb/nat/fork-inferior.c
index 172eef0..2fd9cba 100644
--- a/gdb/nat/fork-inferior.c
+++ b/gdb/nat/fork-inferior.c
@@ -265,26 +265,20 @@ execv_argv::init_for_shell (const char *exec_file,
/* See nat/fork-inferior.h. */
pid_t
-fork_inferior (const char *exec_file_arg, const std::string &allargs,
- char **env, traceme_ftype traceme_fun,
- init_trace_ftype init_trace_fun, pre_trace_ftype pre_trace_fun,
- const char *shell_file_arg, exec_ftype exec_fun)
+fork_inferior (const char *exec_file, const std::string &allargs, char **env,
+ traceme_ftype traceme_fun, init_trace_ftype init_trace_fun,
+ pre_trace_ftype pre_trace_fun, const char *shell_file_arg,
+ exec_ftype exec_fun)
{
pid_t pid;
/* Set debug_fork then attach to the child while it sleeps, to debug. */
int debug_fork = 0;
const char *shell_file;
- const char *exec_file;
char **save_our_env;
int i;
int save_errno;
- /* If no exec file handed to us, get it from the exec-file command
- -- with a good, common error message if none is specified. */
- if (exec_file_arg == NULL)
- exec_file = get_exec_file ();
- else
- exec_file = exec_file_arg;
+ gdb_assert (exec_file != nullptr);
/* 'startup_with_shell' is declared in inferior.h and bound to the
"set startup-with-shell" option. If 0, we'll just do a
diff --git a/gdb/nto-procfs.c b/gdb/nto-procfs.c
index 9ec2147..c310874 100644
--- a/gdb/nto-procfs.c
+++ b/gdb/nto-procfs.c
@@ -1179,6 +1179,9 @@ nto_procfs_target::create_inferior (const char *exec_file,
const std::string &allargs,
char **env, int from_tty)
{
+ if (exec_file == nullptr)
+ no_executable_specified_error ();
+
struct inheritance inherit;
pid_t pid;
int flags, errn;
@@ -1190,9 +1193,9 @@ nto_procfs_target::create_inferior (const char *exec_file,
argv = xmalloc ((allargs.size () / (unsigned) 2 + 2) *
sizeof (*argv));
- argv[0] = const_cast<char *> (get_exec_file ());
+ argv[0] = exec_file;
args = xstrdup (allargs.c_str ());
- breakup_args (args, (exec_file != NULL) ? &argv[1] : &argv[0]);
+ breakup_args (args, &argv[1]);
argv = nto_parse_redirection (argv, &in, &out, &err);
diff --git a/gdb/procfs.c b/gdb/procfs.c
index 93d1113..a9a26c6 100644
--- a/gdb/procfs.c
+++ b/gdb/procfs.c
@@ -2760,6 +2760,9 @@ procfs_target::create_inferior (const char *exec_file,
const std::string &allargs,
char **env, int from_tty)
{
+ if (exec_file == nullptr)
+ no_executable_specified_error ();
+
const char *shell_file = get_shell ();
char *tryname;
int pid;
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 0445e5a..6d0cba4 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -1835,7 +1835,9 @@ load_command (const char *arg, int from_tty)
{
const char *parg, *prev;
- arg = get_exec_file ();
+ arg = current_program_space->exec_filename ();
+ if (arg == nullptr)
+ no_executable_specified_error ();
/* We may need to quote this string so buildargv can pull it
apart. */
diff --git a/gdbserver/server.cc b/gdbserver/server.cc
index 82f4318..6f9d2a8 100644
--- a/gdbserver/server.cc
+++ b/gdbserver/server.cc
@@ -282,17 +282,6 @@ get_exec_wrapper ()
return !wrapper_argv.empty () ? wrapper_argv.c_str () : NULL;
}
-/* See gdbsupport/common-inferior.h. */
-
-const char *
-get_exec_file ()
-{
- if (program_path.get () == NULL)
- error (_("No executable file specified."));
-
- return program_path.get ();
-}
-
/* See server.h. */
gdb_environ *
diff --git a/gdbsupport/common-inferior.h b/gdbsupport/common-inferior.h
index 9c19e9d..cc625ae 100644
--- a/gdbsupport/common-inferior.h
+++ b/gdbsupport/common-inferior.h
@@ -27,11 +27,6 @@
otherwise. */
extern const char *get_exec_wrapper ();
-/* Return the name of the executable file as a string.
-
- Error out if no executable is specified. */
-extern const char *get_exec_file ();
-
/* Return the inferior's current working directory.
If it is not set, the string is empty. */