Add cwd/set_cwd to the inferior class, remove set_inferior_args.
Keep get_inferior_args, because it is used from fork_inferior, in shared
code. The cwd could eventually be passed as a parameter eventually,
though, I think that would be cleaner.
Change-Id: Ifb72ea865d7e6f9a491308f0d5c1595579d8427e
current_inferior ()->args ());
}
-/* Set the inferior current working directory. If CWD is NULL, unset
- the directory. */
-
-static void
-set_inferior_cwd (const char *cwd)
-{
- struct inferior *inf = current_inferior ();
-
- gdb_assert (inf != NULL);
-
- if (cwd == NULL)
- inf->cwd.reset ();
- else
- inf->cwd.reset (xstrdup (cwd));
-}
-
/* See gdbsupport/common-inferior.h. */
const char *
get_inferior_cwd ()
{
- return current_inferior ()->cwd.get ();
+ return current_inferior ()->cwd ();
}
/* Handle the 'set cwd' command. */
set_cwd_command (const char *args, int from_tty, struct cmd_list_element *c)
{
if (*inferior_cwd_scratch == '\0')
- set_inferior_cwd (NULL);
+ current_inferior ()->set_cwd (nullptr);
else
- set_inferior_cwd (inferior_cwd_scratch);
+ current_inferior ()->set_cwd (inferior_cwd_scratch);
}
/* Handle the 'show cwd' command. */
show_cwd_command (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
{
- const char *cwd = get_inferior_cwd ();
+ const char *cwd = current_inferior ()->cwd ();
if (cwd == NULL)
fprintf_filtered (gdb_stdout,
return m_args.get ();
}
+ /* Set the inferior current working directory.
+
+ If CWD is NULL, unset the directory. */
+ void set_cwd (const char *cwd)
+ {
+ if (cwd == NULL)
+ m_cwd.reset ();
+ else
+ m_cwd.reset (xstrdup (cwd));
+ }
+
+ /* Get the inferior current working directory.
+
+ Return nullptr if the current working directory is not specified. */
+ const char *cwd () const
+ {
+ return m_cwd.get ();
+ }
+
/* Convenient handle (GDB inferior id). Unique across all
inferiors. */
int num = 0;
/* The program space bound to this inferior. */
struct program_space *pspace = NULL;
- /* The current working directory that will be used when starting
- this inferior. */
- gdb::unique_xmalloc_ptr<char> cwd;
-
/* The terminal state as set by the last target_terminal::terminal_*
call. */
target_terminal_state terminal_state = target_terminal_state::is_ours;
This is nullptr when there are not args. */
gdb::unique_xmalloc_ptr<char> m_args;
+
+ /* The current working directory that will be used when starting
+ this inferior. */
+ gdb::unique_xmalloc_ptr<char> m_cwd;
};
/* Keep a registry of per-inferior data-pointers required by other GDB
{
if (packet_support (PACKET_QSetWorkingDir) != PACKET_DISABLE)
{
- const char *inferior_cwd = get_inferior_cwd ();
+ const char *inferior_cwd = current_inferior ()->cwd ();
remote_state *rs = get_remote_state ();
if (inferior_cwd != NULL)
if (!exec_file)
error (_("No executable specified, use `target exec'."));
- const char *inferior_cwd = get_inferior_cwd ();
+ const char *inferior_cwd = current_inferior ()->cwd ();
std::string expanded_infcwd;
if (inferior_cwd != NULL)
{