gdb: add setter/getter for inferior cwd

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
This commit is contained in:
Simon Marchi
2021-06-25 21:57:56 -04:00
parent e51695253e
commit 90cc31c9e5
4 changed files with 29 additions and 26 deletions

View File

@ -466,6 +466,25 @@ public:
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;
@ -495,10 +514,6 @@ public:
/* 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;
@ -591,6 +606,10 @@ private:
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