This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Elena Zannoni wrote:
> 
> 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'?

Umm, I can't think of a way to say that, without more-than-doubling
the amount of text currently devoted to the subject.  I will check
it in as is, and then we can add something about this if you wish.


>  > > 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?

No.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]