Re: [RFA] Add new cmd line parameter "--pid" for attach.

Elena Zannoni
2002-01-10T21:13:15Z

Michael Snyder writes:
> Elena Zannoni wrote:
> >
> > Michael Snyder writes:
> > >
> > > Currently if you invoke gdb as:
> > >
> > > gdb filename 12345
> > >
> > > gdb will attempt to open a corefile called "12345", and if that
> > > fails it will print a "file not found" warning, and then attempt
> > > to attach to a process "12345".
> > >
> > > There is a "--core <filename>" command-line argument,
> > > so that you can specify a corefile without a symbol file:
> > >
> > > gdb --core <filename>
> > >
> > > but there is no "--pid" option to allow you to specify
> > > a process-id without a symbol file.
> > >
> > > This patch does two things:
> > >
> > > 1) Add a "--pid" option to allow specification of an attach pid.
> > >
> >
> > This bit is approved.
> >
> > > 2) If the second argument (after the symbol-file) begins with
> > > a digit, try attach first instead of trying to open it as a
> > > corefile first. This eliminates the "file not found" warning.
> > >
> >
> > About this, I have a question, what happens if you have a corefile
> > whose name starts with a digit? I tried it and I get an error:
> >
> > [ezannoni@localhost gdb]$ ./gdb -nw ./gdb 2222core
> > GNU gdb 2002-01-03-cvs
> > Copyright 2001 Free Software Foundation, Inc.
> > GDB is free software, covered by the GNU General Public License, and you are
> > welcome to change it and/or distribute copies of it under certain conditions.
> > Type "show copying" to see the conditions.
> > There is absolutely no warranty for GDB. Type "show warranty" for details.
> > This GDB was configured as "i686-pc-linux-gnu"...
> > Attaching to program: /home/ezannoni/sources/native/gdb/gdb, process 2222
> > ptrace: No such process.
> >
> > then it proceeds normally to figure out it's a core file.
>
> Right -- this is actually the reverse of the old behavior
> (before my change). Previously the algorythm was this:
>
> Try to open a corefile
> on failure, if isdigit(string[0])
> try to attach a pid.
>
> So if it was really a pid, you always got an error when
> it tried to open it as a corefile. Now the algorythm is:
>
> if isdigit (string[0])
> try to attach a pid
> on failure, try to open a corefile
> else try to open a corefile
>
> So the only time you will get a failure warning is
> if you have a corefile whose name begins with a digit.
> I think that's an improvement (warning should be less
> frequent).
>

Yes, that's what I wanted to point out. We are swapping an error
message with another. The advantage is that the warning shouldn't come
up as often. Can you commit this, adding the bit to the docs about
specifying './2222core' instead of '2222core'?

> >
> > I can be convinced that a digit is more likely to indicate a pid than
> > a corefile, but would there be a way to make that error be silent? I
> > realize that those error messages are generated in the bowels of gdb,
> > and it may be really hard to fix that (gee, isn't this something the
> > insight people have some opinion about? :-)
> >

Just out of curiosity have you looked into this at all?

> > What's that bit about input-radix and output-radix?
>
> Ummm... D'oh! Sorry, that doesn't belong there.
> Please ignore it, I'll strip it out before committing.

Yes, ok.

Elena