aboutsummaryrefslogtreecommitdiff
path: root/gdbsupport/common-inferior.h
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@efficios.com>2024-05-30 14:53:56 -0400
committerSimon Marchi <simon.marchi@polymtl.ca>2024-06-07 23:09:03 -0400
commit7831bc9185340d294e02eb9e1312ec9dc865e2ff (patch)
treea9e62fd2dd355cefaa62b691ab147425504c9907 /gdbsupport/common-inferior.h
parent449637674f3146537e8f58520ce1058b9dd58c0a (diff)
downloadgdb-7831bc9185340d294e02eb9e1312ec9dc865e2ff.zip
gdb-7831bc9185340d294e02eb9e1312ec9dc865e2ff.tar.gz
gdb-7831bc9185340d294e02eb9e1312ec9dc865e2ff.tar.bz2
gdb: remove get_exec_file
I believe that the get_exec_file function is unnecessary, and the code can be simplified if we remove it. Consider for instance when you "run" a program on Linux with native debugging. 1. run_command_1 obtains the executable file from `current_program_space->exec_filename ()` 2. it passes it to `run_target->create_inferior()`, which is `inf_ptrace_target::create_inferior()` in this case, which then passes it to `fork_inferior()` 3. `fork_inferior()` then has a fallback, where if the passed exec file is nullptr, it gets its from `get_exec_file()`. 4. `get_exec_file()` returns `current_program_space->exec_filename ()` - just like the things we started with - or errors out if the current program space doesn't have a specified executable. If there's no exec filename passed in step 1, there's not going to be any in step 4, so it seems pointless to call `get_exec_file()`, we could just error out when `exec_file` is nullptr. But we can't error out directly in `fork_inferior()`, since the error is GDB-specific, and that function is shared with GDBserver. Speaking of GDBserver, all code paths that lead to `fork_inferior()` provide a non-nullptr exec file. Therefore, to simplify things: - Make `fork_inferior()` assume that the passed exec file is not nullptr, don't call `get_exec_file()` - Change some targets (darwin-nat, go32-nat, gnu-nat, inf-ptrace, nto-procfs, procfs) to error out when the exec file passed to their create_inferior method is nullptr. Some targets are fine with a nullptr exec file, so we can't check that in `run_command_1()`. - Add the `no_executable_specified_error()` function, which re-uses the error message that `get_exec_file()` had. - Change some targets (go32-nat, nto-procfs) to not call `get_exec_file()`, since it's pointless for the same reason as in the example above, if it returns, it's going the be the same value as the `exec_file` parameter. Just rely on `exec_file`. - Remove the final use of `get_exec_file()`, in `load_command()`. - Remove the `get_exec_file()` implementations in GDB and GDBserver and remove the shared declaration. Change-Id: I601c16498e455f7baa1f111a179da2f6c913baa3 Approved-By: Tom Tromey <tom@tromey.com>
Diffstat (limited to 'gdbsupport/common-inferior.h')
-rw-r--r--gdbsupport/common-inferior.h5
1 files changed, 0 insertions, 5 deletions
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. */