[doc] Mention that "set environment" affects the shell too.
authorPedro Alves <palves@redhat.com>
Fri, 10 Jan 2014 15:46:59 +0000 (15:46 +0000)
committerPedro Alves <palves@redhat.com>
Fri, 10 Jan 2014 15:46:59 +0000 (15:46 +0000)
gdb/doc/
2014-01-10  Pedro Alves  <palves@redhat.com>

* gdb.texinfo (Your Program's Environment) <set environment>:
Mention the shell, and point at 'set exec-wrapper'.

gdb/doc/ChangeLog
gdb/doc/gdb.texinfo

index afcfbd9..ecab738 100644 (file)
@@ -1,3 +1,8 @@
+2014-01-10  Pedro Alves  <palves@redhat.com>
+
+       * gdb.texinfo (Your Program's Environment) <set environment>:
+       Mention the shell, and point at 'set exec-wrapper'.
+
 2014-01-07  Joel Brobecker  <brobecker@adacore.com>
 
        * gdb.texinfo (Types In Python): Document new attribute Types.name.
index 74ddcf5..e4cff84 100644 (file)
@@ -2089,6 +2089,7 @@ your program too late, as the program would have already completed the
 elaboration phase.  Under these circumstances, insert breakpoints in your
 elaboration code before running your program.
 
+@anchor{set exec-wrapper}
 @kindex set exec-wrapper
 @item set exec-wrapper @var{wrapper}
 @itemx show exec-wrapper
@@ -2279,9 +2280,10 @@ your program.  You can abbreviate @code{environment} as @code{env}.
 @kindex set environment
 @item set environment @var{varname} @r{[}=@var{value}@r{]}
 Set environment variable @var{varname} to @var{value}.  The value
-changes for your program only, not for @value{GDBN} itself.  @var{value} may
-be any string; the values of environment variables are just strings, and
-any interpretation is supplied by your program itself.  The @var{value}
+changes for your program (and the shell @value{GDBN} uses to launch
+it), not for @value{GDBN} itself.  @var{value} may be any string; the
+values of environment variables are just strings, and any
+interpretation is supplied by your program itself.  The @var{value}
 parameter is optional; if it is eliminated, the variable is set to a
 null value.
 @c "any string" here does not include leading, trailing
@@ -2298,6 +2300,12 @@ tells the debugged program, when subsequently run, that its user is named
 @samp{foo}.  (The spaces around @samp{=} are used for clarity here; they
 are not actually required.)
 
+Note that on Unix systems, @value{GDBN} runs your program via a shell,
+which also inherits the environment set with @code{set environment}.
+If necessary, you can avoid that by using the @samp{env} program as a
+wrapper instead of using @code{set environment}.  @xref{set
+exec-wrapper}, for an example doing just that.
+
 @kindex unset environment
 @item unset environment @var{varname}
 Remove variable @var{varname} from the environment to be passed to your