Re: [PATCH] Make only user-specified executable filenames sticky

Gary Benson
2015-06-05T09:37:29Z

Don Breazeal wrote:
> On 5/6/2015 3:26 AM, Gary Benson wrote:
> > In GDB some executable files are supplied by the user (e.g. using
> > a "file" command) and some are determined by GDB (e.g. while
> > processing an "attach" command). GDB will not attempt to
> > determine a filename if one has been set. This causes problems if
> > you attach to one process and then attach to another: GDB will not
> > attempt to discover the main executable on the second attach. If
> > the two processes have different main executable files then the
> > symbols will now be wrong.
> >
> > This commit updates GDB to keep track of which executable
> > filenames were supplied by the user. When GDB might attempt to
> > determine an executable filename and one is already set, filenames
> > determined by GDB may be overridden but user-supplied filenames
> > will not.
>
> I realize that I am coming late to this discussion, sorry about
> that.

Likewise, sorry for taking so long to reply :)

> How does this interact with follow-exec-mode? If follow-exec-mode
> is 'new' and the program execs, then 'run' will use the original
> executable file. But if follow-exec-mode is 'same' and the program
> execs, then 'run' will use the executable file that was active after
> the exec call.
>
> In the follow-exec-mode == 'same' instance, is the assumption that
> the exec'd executable file takes on the same 'user-supplied'
> attribute as the initial executable, since it is using the original
> inferior?
>
> If so, is there a scenario where:
> * the user supplies the exec file name
> * the program execs, so the exec file name is now different
> * then the user tries to do an attach (without an exec file name) to a
> process running the original exec file, and gets the wrong exec file name?

I'm not sure. Where would I need to look to check this out?
(Where is the bit that updates the filename after exec?)

Cheers,
Gary

--