summaryrefslogtreecommitdiff
path: root/gdb/inferior.c
diff options
context:
space:
mode:
authorVladimir Prus <vladimir@codesourcery.com>2010-01-20 14:23:07 +0000
committerVladimir Prus <vladimir@codesourcery.com>2010-01-20 14:23:07 +0000
commite9d6247f3e0c88822735be45843c7d44d8d9d2b8 (patch)
treead2c926c005d082c8c2bc6d2714c5f971bdcdb9e /gdb/inferior.c
parent47cf631cfac84796d765b828dc0f0a0f9e5f8421 (diff)
downloadgdb-e9d6247f3e0c88822735be45843c7d44d8d9d2b8.tar.gz
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.
Diffstat (limited to 'gdb/inferior.c')
-rw-r--r--gdb/inferior.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/inferior.c b/gdb/inferior.c
index d27a3e38f91..0667bfaa3e3 100644
--- a/gdb/inferior.c
+++ b/gdb/inferior.c
@@ -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)