From: muller@cerbere.u-strasbg.fr
To: gdb-patches@sources.redhat.com
Subject: Re: [PATCH] run > file for win32
Date: Wed, 20 Feb 2002 10:42:00 -0000 [thread overview]
Message-ID: <3.0.6.32.20020220194315.0135e8b0@ics.u-strasbg.fr> (raw)
In-Reply-To: <20020220165840.GJ26603@redhat.com>
At 11:58 20/02/02 -0500, Christopher Faylor wrote:
>On Wed, Feb 20, 2002 at 05:40:24PM +0100, Pierre Muller wrote:
>>
>>> >To sort the events and only handles those of the process that you want
>>> >to debug you use saw_create variable.
>>>
>>>IMO, the right way to handle this is to inspect the name of each process
>>>as it is created. That presents some interesting difficulties, however.
>>>It means that gdb has to understand how the shell will find the executable,
>>>however.
>>>
>>>Alternatively, gdb could detect the transition from shell -> program where
>>>the pid stays the same. Hmm. I think that would be the most foolproof.
>>
>>But that is not the case... the windows pid does change when you pass
from the
>>shell to the debuggee. My patch is even based on that change.
>
>I was talking about the cygwin pid. It doesn't change across an exec,
just like
>UNIX.
OK, but it must also work for non-cygwin executables.
>>>I'll try to come up with some kind of solution to this that uses your
method
>>>plus the above. It will probably take a couple of days, though.
>>
>>As the win32 API clearly says that the lpImageName field of the
>>CREATE_PROCESS_DEBUG_EVENT can be null, this is not an option.
>
>We have methods for dealing with this, though. They aren't implemented
>for this case but they are for the situation where we're attaching a
>process.
>
>I'd like to eventually record the name of the debugged process using
>these methods.
>
>>May I suggest using GetFileInformationByHandle function?
>>
>>If you open the file in the child_create_inferior function and leave it
>>open until the program is killed or exits,
>
>The problem is, as I mentioned, we don't know what the file is named.
>The fact that you are debugging 'foo.exe' doesn't mean that the actual
>file is ./foo.exe.
I am not sure this is true,
when I tried it, the name of the executable was always a
fully qualified name, it probably expanded before.
Its already so if you type 'info file'.
>Detecting when windows pid changes and the cygwin pid stays the same
>seems to be a foolproof method for dealing with this.
>
>>-- I don't know if this is a problem with my configuration, but the
>>getenv("SHELL") returns NULL in _initialize_inftarg while I do have
>>SHELL=/bin/bash in the bash that I use as shell...
>
>If you are saying that getenv isn't working, then there is certainly
>a problem somewhere.
I will try to investigatee that a little.
>> -- This reminds me of one more question:
>>do all shells accept "exec" command and -c option ?
>
>If they don't then the user will have to use the "set shell off" option.
>fork-child.c seems to assume that -c is universal, however.
But maybe without 'exec'?
>>-- We need to be very careful about the different handles that I given
>>by the different events, failing to close some might result in problems
>>later.
>
>I kinda thought I was careful about this.
I didn't look closely. Its probably perfectly allright
if you already tought about this possible problem.
>> Finally, wouldn't it be wise to set the default value of useshell to 0
>>until this problem is fixed?
>>Currently the variable is set to 1 in _initialize_inftarg
>>if a shell is found.
>
>Actually, I'm going to turn it off by default even when this is fixed.
Its probably the wisest solution.
But I just committed ingdb.texinfo that its on by default,
so don't forget to change that also.
prev parent reply other threads:[~2002-02-20 18:42 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-02-16 2:03 Christopher Faylor
2002-02-20 1:58 ` Pierre Muller
2002-02-20 8:11 ` Christopher Faylor
2002-02-20 8:41 ` Pierre Muller
2002-02-20 8:58 ` Christopher Faylor
2002-02-20 10:42 ` muller [this message]
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=3.0.6.32.20020220194315.0135e8b0@ics.u-strasbg.fr \
--to=muller@cerbere.u-strasbg.fr \
--cc=gdb-patches@sources.redhat.com \
/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