From: Corinna Vinschen <vinschen@redhat.com>
To: gdb-patches@sourceware.org
Subject: Re: [RFA] testsuite: Add a test for passing of environment variables to inferior
Date: Tue, 04 Oct 2011 15:13:00 -0000 [thread overview]
Message-ID: <20111004151236.GC15757@calimero.vinschen.de> (raw)
In-Reply-To: <000901cc82a4$dfba7cd0$9f2f7670$@muller@ics-cnrs.unistra.fr>
On Oct 4 16:49, Pierre Muller wrote:
> > De : gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> > owner@sourceware.org] De la part de Corinna Vinschen
> > Yes, that would be necessary. I'm wondering if we can't just utilze the
> > global environ variable for this and spare us all the hassle. Something
> > along these lines:
> >
> > char **old_env = environ;
> > environ = in_env;
> > cygwin_internal (CW_SYNC_WINENV);
> > CreateProcessW (NULL environment pointer);
> > environ = old_env;
>
> I checked it out, but it still
> fails for the last test, the missing TEST_GDB_VAR1
> variable doesn't get removed from GDB environment list
> apparently (This is probably related to the internals
> of cygwin_internal (CW_SYNC_WINENV), no?
Right. The problem is that there's no simple Win32 call to set (or
clear) the Windows environment in one go. So CW_SYNC_WINENV only sets
but never unsets because that would require to check each Windows
variable if it exists in the POSIX env or not. That was more effort
than seemed to make sense at the time.
> Manually resetting all variables should help...
Yes, but that's far from elegant. I don't mean your patch, but the fact
that it seems to be necessary at all. Maybe we should introduce some
new cygwin_internal call, which produces a Win32 environment from a
POSIX environment without affecting the Win32 environment of the calling
process:
LPWCH out_env = (LPWCH) cygwin_internal (CW_CREATE_WIN32_ENV, in_env);
CreateProcess (..., CREATE_UNICODE_ENVIRONMENT, ..., out_env, ...);
free (new_env);
But that would only work for newer Cygwin releases, so that's just
a future option.
> The patch below does not generate any failure on my test,
> but I am still not sure what happens if you try to
> remove an environment variable that was set when GDB started...
GDB should not be affected. Its POSIX environment is still intact and
that's all what's used when interacting with the underlying Cygwin POSIX
calls. The only variable which should have an effect is $PATH, and that's
restored by the final cygwin_internal(CW_SYNC_WINENV) call. So, AFAICS,
your patch should be fine.
Corinna
--
Corinna Vinschen
Cygwin Project Co-Leader
Red Hat
next prev parent reply other threads:[~2011-10-04 15:13 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-04 12:36 Pierre Muller
2011-10-04 13:45 ` Corinna Vinschen
2011-10-04 14:43 ` Eli Zaretskii
2011-10-04 14:48 ` Pierre Muller
2011-10-04 14:50 ` Pierre Muller
2011-10-04 15:13 ` Corinna Vinschen [this message]
2011-10-04 16:09 ` [RFA-v2] " Pierre Muller
2011-10-04 16:11 ` [RFA] " Pierre Muller
2011-10-05 11:40 ` Corinna Vinschen
2011-10-05 12:08 ` Pierre Muller
2011-10-05 12:52 ` Corinna Vinschen
2011-10-06 14:51 ` Christopher Faylor
2011-10-06 15:03 ` Corinna Vinschen
2011-10-07 12:26 ` Christopher Faylor
2011-10-07 13:53 ` Corinna Vinschen
[not found] ` <12954.5351061553$1317744599@news.gmane.org>
2011-10-04 17:27 ` [RFA-v2] " Tom Tromey
2011-10-04 21:35 ` [RFA-v3] " Pierre Muller
[not found] ` <29288.743020925$1317764135@news.gmane.org>
2011-10-05 13:53 ` Tom Tromey
2011-10-05 14:25 ` Pierre Muller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20111004151236.GC15757@calimero.vinschen.de \
--to=vinschen@redhat.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox