forked from Imagelibrary/binutils-gdb
Per-inferior args and tty and environment.
* infcmd.c (inferior_args): Rename to ... (inferior_args_scratch): ... this. (inferior_io_terminal): Rename to ... (inferior_io_terminal_scratch): ... this. (inferior_argc, inferior_argv): Remove. (set_inferior_io_terminal, get_inferior_io_terminal): Store inside current_inferior(). (set_inferior_tty_command, show_inferior_tty_command): New. (get_inferior_args, set_inferior_args): Store inside current_inferior(). (notice_args_set): Likewise and rename to... (set_args_command): ... this. (set_inferior_args_vector): Likewise. (notice_args_read): Rename to... (show_args_command): ...new. (tty_command): Remove. (run_command_1): Don't free old args, as they are freed by set_inferior_arg now. (run_no_args_command): Likewise. (inferior_environ): Remove. (run_command_1): Use environment of the current inferior. (environment_info, set_environment_command) (unset_environment_command, path_info, path_command): Likewise. (_initialize_infcmd): Adjust for function and variable renames. Do not init inferior_environ. * inferior.h (set_inferior_arg): Adjust prototype. (struct inferior): New fields args, argc, argv, terminal, environment. (inferior_environ): Remove declaration. * inferior.c (free_inferior): Free new fields. (add_inferior_silent): Initialize 'environment' field. * main.c (captured_main): Set arguments only after the initial inferior has been created. Set set_inferior_io_terminal, not tty_command. * mi/mi-main.c (mi_cmd_env_path): Use environment of the current inferior. (_initialize_mi_cmd_env): Adjust for disappearance of global inferior_environ. * solib.c (solib_find): Use environment of the current inferior.
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
#include "gdbthread.h"
|
||||
#include "gdbcore.h"
|
||||
#include "symfile.h"
|
||||
#include "environ.h"
|
||||
|
||||
void _initialize_inferiors (void);
|
||||
|
||||
@@ -87,6 +88,9 @@ free_inferior (struct inferior *inf)
|
||||
{
|
||||
discard_all_inferior_continuations (inf);
|
||||
inferior_free_data (inf);
|
||||
xfree (inf->args);
|
||||
xfree (inf->terminal);
|
||||
free_environ (inf->environment);
|
||||
xfree (inf->private);
|
||||
xfree (inf);
|
||||
}
|
||||
@@ -124,6 +128,9 @@ add_inferior_silent (int pid)
|
||||
inf->next = inferior_list;
|
||||
inferior_list = inf;
|
||||
|
||||
inf->environment = make_environ ();
|
||||
init_environ (inf->environment);
|
||||
|
||||
inferior_alloc_data (inf);
|
||||
|
||||
if (pid != 0)
|
||||
|
||||
Reference in New Issue
Block a user