fname = lbasename (exe);
psargs = std::string (exe);
- const char *infargs = current_inferior ()->args ();
- if (infargs != nullptr)
- psargs += " " + std::string (infargs);
+ const std::string &infargs = current_inferior ()->args ();
+ if (!infargs.empty ())
+ psargs += ' ' + infargs;
/* All existing targets that handle writing out prpsinfo expect the
fname and psargs strings to be at least 16 and 80 characters long
const char *fname = lbasename (get_exec_file (0));
std::string psargs = fname;
- const char *infargs = current_inferior ()->args ();
- if (infargs != NULL)
- psargs = psargs + " " + infargs;
+ const std::string &infargs = current_inferior ()->args ();
+ if (!infargs.empty ())
+ psargs += ' ' + infargs;
note_data.reset (elfcore_write_prpsinfo (obfd, note_data.release (),
note_size, fname,
{
gdb::array_view<char * const> args (argv, argc);
std::string n = construct_inferior_arguments (args);
- current_inferior ()->set_args (n.c_str ());
+ current_inferior ()->set_args (std::move (n));
}
/* Notice when `set args' is run. */
/* Note that we ignore the passed-in value in favor of computing it
directly. */
deprecated_show_value_hack (file, from_tty, c,
- current_inferior ()->args ());
+ current_inferior ()->args ().c_str ());
}
/* See gdbsupport/common-inferior.h. */
/* Set the argument string to use when running this inferior.
- Either nullptr or an empty string can be used to represent "no
- arguments". */
- void set_args (const char *args)
+ An empty string can be used to represent "no arguments". */
+ void set_args (std::string args)
{
- if (args != nullptr && args[0] != '\0')
- m_args = make_unique_xstrdup (args);
- else
- m_args.reset ();
+ m_args = std::move (args);
};
/* Get the argument string to use when running this inferior.
- The return value is always non-nullptr. No arguments is represented by
- an empty string. */
- const char *args () const
+ No arguments is represented by an empty string. */
+ const std::string &args () const
{
- if (m_args == nullptr)
- return "";
-
- return m_args.get ();
+ return m_args;
}
/* Set the inferior current working directory.
/* The list of continuations. */
std::list<std::function<void ()>> m_continuations;
- /* The arguments string to use when running.
-
- This is nullptr when there are not args. */
- gdb::unique_xmalloc_ptr<char> m_args;
+ /* The arguments string to use when running. */
+ std::string m_args;
/* The current working directory that will be used when starting
this inferior. */
strncpy (p->pr_fname, basename, sizeof (p->pr_fname) - 1);
p->pr_fname[sizeof (p->pr_fname) - 1] = '\0';
- const char *infargs = current_inferior ()->args ();
+ const std::string &infargs = current_inferior ()->args ();
/* The arguments of the program. */
std::string psargs = fname.get ();
- if (infargs != NULL)
- psargs = psargs + " " + infargs;
+ if (!infargs.empty ())
+ psargs += ' ' + infargs;
strncpy (p->pr_psargs, psargs.c_str (), sizeof (p->pr_psargs) - 1);
p->pr_psargs[sizeof (p->pr_psargs) - 1] = '\0';
char psargs[80] = {'\0'};
procinfo *pi = find_procinfo_or_die (inferior_ptid.pid (), 0);
gdb::unique_xmalloc_ptr<char> note_data;
- const char *inf_args;
enum gdb_signal stop_signal;
if (get_exec_file (0))
strncpy (psargs, get_exec_file (0), sizeof (psargs));
psargs[sizeof (psargs) - 1] = 0;
- inf_args = current_inferior ()->args ();
- if (inf_args && *inf_args
- && (strlen (inf_args)
- < ((int) sizeof (psargs) - (int) strlen (psargs))))
+ const std::string &inf_args = current_inferior ()->args ();
+ if (!inf_args.empty () &&
+ inf_args.length () < ((int) sizeof (psargs) - (int) strlen (psargs)))
{
strncat (psargs, " ",
sizeof (psargs) - strlen (psargs));
- strncat (psargs, inf_args,
+ strncat (psargs, inf_args.c_str (),
sizeof (psargs) - strlen (psargs));
}
}