Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* Re: Namespaces with gcc v3 stabs+?
@ 2002-12-06 13:06 Michael Elizabeth Chastain
  2002-12-06 17:27 ` David Carlton
  2002-12-06 17:58 ` Daniel Jacobowitz
  0 siblings, 2 replies; 10+ messages in thread
From: Michael Elizabeth Chastain @ 2002-12-06 13:06 UTC (permalink / raw)
  To: carlton, drow; +Cc: gdb

David Carlton writes:
> So for now I'd lean towards getting GCC to emit stabs+ info as it did
> in 2.95.3: that should be cheap on everybody's part, and profitable
> enough.

Sounds good to me.  If that's okay with drow, then that's what I'll
request in the bug report.

If gcc doesn't fix the bug at all, then I can point to the bug report
and mark the test case as "xfail".  My view is that, since "xfail" is
caused by a bug in an external program, we'd better have a bug report
to go with it.

> What systems are there that GCC supports for which stabs+ can be used
> but DWARF 2 can't?  How important are they?  Who's supporting them?
> Are there other more modern debug formats that really should be used
> on those systems in place of stabs?

If the user builds gcc with "--with-stabs", gcc prefers dbx
(the gcc name for stabs).  Besides that, there are about 90 configurations
which default to dbx, most of them without dwarf2 support.  Darwin and
Cygwin are the big ones, with some arm configurations in there.

Michael C

  % cd /berman/migchain/source/gcc-3.2.1/gcc/config
  % grep -r -i dbx_debug *

I found these configurations which prefer dbx:

  darwin.h             dbx, dwarf2
  interix.h            dbx, sdb
  lynx-ng.h            dbx, sdb
  lynx.h               dbx, sdb
  netware.h            dbx
  nextstep.h           dbx
  psos.h               dbx

  alpha/linux-ecoff.h  dbx
  alpha/openbsd.h      dbx
  arc/arc.h            dbx, dwarf-2
  arm/aout.h           dbx
  arm/coff.h           dbx, sdb
  arm/netbsd.h         dbx
  arm/rix-gas.h        dbx
  avr/avr.h            dbx
  convex/convex.h      dbx
  cris/aout.h          dbx
  d30v/d30v.h          dbx
  i386/cygwin.h        dbx, sdb
  i386/i386elf.h       dbx
  i386/gstabs.h        dbx
  i386/i386-interix.h  dbx, sdb
  i386/osf1elfgdb.h    dbx
  i386/osfrose.h       dbx
  i386/sco5.h          dbx, sdb, dwarf, dwarf-2
  i386/sequent.h       dbx
  i386/sol2.h          dbx
  i386/sun.h           dbx
  i386/svr3dbx.h       dbx
  i386/win32.h         dbx, sdb
  i860/bsd.h           dbx
  i860/fx2800.h        dbx
  i960/i960.h          dbx, sdb
  m32r/m32r.h          dbx, dwarf, dwarf-2
  m68k/3b1g.h          dbx
  m68k/altos3068.h     dbx
  m68k/ccur-GAS.h      dbx
  m68k/hp2bsd.h        dbx
  m68k/hp310g.h        dbx
  m68k/hp320g.h        dbx
  m68k/hp3bsd.h        dbx
  m68k/hp3bsd44.h      dbx
  m68k/isi.h           dbx
  m68k/linux.h         dbx
  m68k/linux-aout.h    dbx
  m68k/m68kv4.h        dbx
  m68k/netbsd.h        dbx
  m68k/news.h          dbx
  m68k/openbsd.h       dbx
  m68k/pbb.h           dbx
  m68k/sun2.h          dbx
  m68k/sun3.h          dbx
  m68k/vxm68k.h        dbx
  m88k/aout-dbx.h      dbx
  m88k/luna.h          dbx
  m88k/m88k-aout.h     dbx
  mcore/mcore-pe.h     dbx
  mips/dec-bsd.h       dbx
  mips/elf.h           dbx, dwarf-2
  mips/elf64.h         dbx
  mips/iris5gas.h      dbx, sdb, mips
  mips/isa3264.h       dbx
  mips/netbsd.h        dbx
  mips/openbsd.h       dbx
  mips/osfrose.h       dbx
  mn10200/mn10200.h    dbx
  ns32k/merlin.h       dbx
  ns32k/netbsd.h       dbx
  ns32k/pc532.h        dbx
  ns32k/sequent.h      dbx
  ns32k/tek6000.h      dbx
  pa/pa.h              dbx
  romp/romp.h          dbx
  rs6000/netbsd.h      dbx
  rs6000/vxppc.h       dbx
  sparc/linux64.h      dbx, dwarf2
  sparc/litecoff.h     dbx
  sparc/netbsd.h       dbx
  sparc/openbsd.h      dbx
  sparc/pbd.h          dbx
  sparc/sol2-bi.h      dbx # if TARGET_ARCH32
  sparc/sol2.h         dbx
  sparc/sparc.h        dbx
  sparc/vxsim.h        dbx
  sparc/vxsparc64.h    dbx
  v850/v850.h          dbx
  vax/vax.h            dbx
  vax/vaxv.h           dbx


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Namespaces with gcc v3 stabs+?
  2002-12-06 13:06 Namespaces with gcc v3 stabs+? Michael Elizabeth Chastain
@ 2002-12-06 17:27 ` David Carlton
  2002-12-07  6:49   ` Stan Shebs
  2002-12-06 17:58 ` Daniel Jacobowitz
  1 sibling, 1 reply; 10+ messages in thread
From: David Carlton @ 2002-12-06 17:27 UTC (permalink / raw)
  To: Michael Elizabeth Chastain; +Cc: drow, gdb

On Fri, 6 Dec 2002 15:05:54 -0600, Michael Elizabeth Chastain <mec@shout.net> said:
> David Carlton writes:

>> What systems are there that GCC supports for which stabs+ can be
>> used but DWARF 2 can't?  How important are they?  Who's supporting
>> them?  Are there other more modern debug formats that really should
>> be used on those systems in place of stabs?

> If the user builds gcc with "--with-stabs", gcc prefers dbx (the gcc
> name for stabs).  Besides that, there are about 90 configurations
> which default to dbx, most of them without dwarf2 support.  Darwin
> and Cygwin are the big ones, with some arm configurations in there.

Thanks for the list.  And Darwin apparently supports DWARF 2.  I'm not
suprised Cygwin is a sticky one, though, now that you mention it.

It seems to me that, for now, it wouldn't be a great idea to convince
GCC to generate a fancy version of stabs, then, until somebody appears
who's particularly motivated to deal with the issues that arise.  So I
agree with your planned course of action.

David Carlton
carlton@math.stanford.edu


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Namespaces with gcc v3 stabs+?
  2002-12-06 13:06 Namespaces with gcc v3 stabs+? Michael Elizabeth Chastain
  2002-12-06 17:27 ` David Carlton
@ 2002-12-06 17:58 ` Daniel Jacobowitz
  1 sibling, 0 replies; 10+ messages in thread
From: Daniel Jacobowitz @ 2002-12-06 17:58 UTC (permalink / raw)
  To: Michael Elizabeth Chastain; +Cc: carlton, gdb

On Fri, Dec 06, 2002 at 03:05:54PM -0600, Michael Elizabeth Chastain wrote:
> David Carlton writes:
> > So for now I'd lean towards getting GCC to emit stabs+ info as it did
> > in 2.95.3: that should be cheap on everybody's part, and profitable
> > enough.
> 
> Sounds good to me.  If that's okay with drow, then that's what I'll
> request in the bug report.

Give me a couple of days?  I want to spend a little time hacking on the
debug info stuff - I'll try to get to it Monday.


-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Namespaces with gcc v3 stabs+?
  2002-12-06 17:27 ` David Carlton
@ 2002-12-07  6:49   ` Stan Shebs
  2002-12-09 10:59     ` David Carlton
  0 siblings, 1 reply; 10+ messages in thread
From: Stan Shebs @ 2002-12-07  6:49 UTC (permalink / raw)
  To: David Carlton; +Cc: Michael Elizabeth Chastain, drow, gdb

David Carlton wrote:

>On Fri, 6 Dec 2002 15:05:54 -0600, Michael Elizabeth Chastain <mec@shout.net> said:
>
>
>Thanks for the list.  And Darwin apparently supports DWARF 2.  I'm not
>suprised Cygwin is a sticky one, though, now that you mention it.
>
Actually, Darwin doesn't either - I turned it on at one point for
experimentation, but the assembler chokes bigtime.

>
>It seems to me that, for now, it wouldn't be a great idea to convince
>GCC to generate a fancy version of stabs, then, until somebody appears
>who's particularly motivated to deal with the issues that arise.  So I
>agree with your planned course of action.
>
Apple might need to do this.  Dwarf 2 is probably in our future, but
it may be a while, because we can't transition until it's more efficient
to use than stabs.

Stan




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Namespaces with gcc v3 stabs+?
  2002-12-07  6:49   ` Stan Shebs
@ 2002-12-09 10:59     ` David Carlton
  0 siblings, 0 replies; 10+ messages in thread
From: David Carlton @ 2002-12-09 10:59 UTC (permalink / raw)
  To: Stan Shebs; +Cc: Michael Elizabeth Chastain, drow, gdb

On Sat, 07 Dec 2002 06:48:21 -0800, Stan Shebs <shebs@apple.com> said:
> David Carlton wrote:

>> It seems to me that, for now, it wouldn't be a great idea to
>> convince GCC to generate a fancy version of stabs, then, until
>> somebody appears who's particularly motivated to deal with the
>> issues that arise.

> Apple might need to do this.

Great; hopefully I'll be able to setup a framework that will make it
relatively easy for y'all, then.

David Carlton
carlton@math.stanford.edu


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Namespaces with gcc v3 stabs+?
@ 2002-12-06 19:48 Michael Elizabeth Chastain
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Elizabeth Chastain @ 2002-12-06 19:48 UTC (permalink / raw)
  To: drow; +Cc: carlton, gdb

Daniel Jacobowitz writes:
> Give me a couple of days?  I want to spend a little time hacking on the
> debug info stuff - I'll try to get to it Monday.

Sure, no hurry on my part.

Michael C


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Namespaces with gcc v3 stabs+?
  2002-12-05 17:14 ` Daniel Jacobowitz
@ 2002-12-06 11:25   ` David Carlton
  0 siblings, 0 replies; 10+ messages in thread
From: David Carlton @ 2002-12-06 11:25 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: Michael Elizabeth Chastain, gdb

On Thu, 5 Dec 2002 20:15:08 -0500, Daniel Jacobowitz <drow@mvista.com> said:
> On Thu, Dec 05, 2002 at 06:31:55PM -0600, Michael Elizabeth Chastain wrote:

>> Question for Daniel J or David C or Kevin B or anybody who knows
>> about v3 and stabs support ...

>> I'm looking at disimprovements from gcc v2 to gcc v3.  One of the
>> issues is that gcc 2.95.3 / stabs+ emits stab information
>> for symbols in namespaces, but gcc 3.2.1 / stabs+ emits the stab
>> information with the wrong name.

> Erk.  Obviously GCC is wrong.  Just the name is not useful.

> What do we want it to do, David?  If we're going to get stabs
> changed in GCC anyway, we could get explicit namespace markers, and
> leave the demangled name in the stabs.  That's parallel to the
> DWARF-2 approach.

I'm not sure.  I'm not a stabs expert, but what I've heard about it
makes me not too eager to spend too much time supporting it if it's
the case that encouraging users to migrate to DWARF 2 is a viable
option.  Which means that, for now, I'm mostly concerned about
supporting namespaces in two ways:

1) DWARF 2 with full namespace debugging information: here we
   obviously want to get everything correct.

2) Debug formats without full namespace debugging information
   (including but not limited to DWARF 2 as currently generated by
   GCC): here we want to infer the presence of namespaces as much as
   is practical.

Supporting stabs at the second level of support seems to me easy
enough and reasonably important.  But converting stabs to the better
level of support would take energy both from us and from GCC, and I'm
not sure that energy is the best possible investment.

So for now I'd lean towards getting GCC to emit stabs+ info as it did
in 2.95.3: that should be cheap on everybody's part, and profitable
enough.

What systems are there that GCC supports for which stabs+ can be used
but DWARF 2 can't?  How important are they?  Who's supporting them?
Are there other more modern debug formats that really should be used
on those systems in place of stabs?

(Admittedly, right now I'm a little more mad at stabs than normal: I
just noticed the #if 1 bit in c-exp.y's yylex() last week, and now I
have the charming task of getting rid of that hack while preserving as
much of the current behavior for stabs users as possible...)

David Carlton
carlton@math.stanford.edu


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Namespaces with gcc v3 stabs+?
@ 2002-12-05 18:06 Michael Elizabeth Chastain
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Elizabeth Chastain @ 2002-12-05 18:06 UTC (permalink / raw)
  To: drow; +Cc: gdb

mec>  http://gcc.gnu.org/ml/gcc-patches/2002-11/msg01661.html
drow> Wrong URL, that's Daniel in November...

Whoops!  Try this one:

  http://gcc.gnu.org/ml/gcc-patches/2002-05/msg01715.html

Michael C


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: Namespaces with gcc v3 stabs+?
  2002-12-05 16:31 Michael Elizabeth Chastain
@ 2002-12-05 17:14 ` Daniel Jacobowitz
  2002-12-06 11:25   ` David Carlton
  0 siblings, 1 reply; 10+ messages in thread
From: Daniel Jacobowitz @ 2002-12-05 17:14 UTC (permalink / raw)
  To: Michael Elizabeth Chastain; +Cc: gdb

On Thu, Dec 05, 2002 at 06:31:55PM -0600, Michael Elizabeth Chastain wrote:
> Question for Daniel J or David C or Kevin B or anybody who knows
> about v3 and stabs support ...
> 
> I'm looking at disimprovements from gcc v2 to gcc v3.  One of the
> issues is that gcc 2.95.3 / stabs+ emits stab information
> for symbols in namespaces, but gcc 3.2.1 / stabs+ emits the stab
> information with the wrong name.

Erk.  Obviously GCC is wrong.  Just the name is not useful.

What do we want it to do, David?  If we're going to get stabs changed
in GCC anyway, we could get explicit namespace markers, and leave the
demangled name in the stabs.  That's parallel to the DWARF-2 approach.

> Kevin B had a similar issue in May 2002:
> 
>   http://gcc.gnu.org/ml/gcc-patches/2002-11/msg01661.html

Wrong URL, that's Daniel in November...

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Namespaces with gcc v3 stabs+?
@ 2002-12-05 16:31 Michael Elizabeth Chastain
  2002-12-05 17:14 ` Daniel Jacobowitz
  0 siblings, 1 reply; 10+ messages in thread
From: Michael Elizabeth Chastain @ 2002-12-05 16:31 UTC (permalink / raw)
  To: gdb

Question for Daniel J or David C or Kevin B or anybody who knows
about v3 and stabs support ...

I'm looking at disimprovements from gcc v2 to gcc v3.  One of the
issues is that gcc 2.95.3 / stabs+ emits stab information
for symbols in namespaces, but gcc 3.2.1 / stabs+ emits the stab
information with the wrong name.

Here is a test program:

  namespace AAA
  {
    char mychar;
  }

Here is the output with gcc 2.95.3:

  # gcc 2.95.3, -gstabs+, native i686-pc-linux-gnu
  .stabs "_3AAA.mychar:G(0,2)",32,0,3,0
  .globl _3AAA.mychar
  .bss
	  .type    _3AAA.mychar,@object
	  .size    _3AAA.mychar,1
  _3AAA.mychar:
	  .zero   1

And here is the output with gcc 3.2.1:

  # gcc 3.2.1, -gstabs+, native i686-pc-linux-gnu
  .globl _ZN3AAA6mycharE
	  .bss
	  .type   _ZN3AAA6mycharE,@object
	  .size   _ZN3AAA6mycharE,1
  _ZN3AAA6mycharE:
	  .zero   1
	  .stabs  "mychar:G(0,2)",32,0,3,0

Notice how the stab refers to "mychar", not "_ZN3AAA6mycharE".

The output is similar with gcc 3.0.4, gcc 3.1, gcc 3.1.1, gcc 3.2,
and gcc HEAD%20021203.

Is this ringing any bells?

Kevin B had a similar issue in May 2002:

  http://gcc.gnu.org/ml/gcc-patches/2002-11/msg01661.html

I would like to file a bug report against gcc, and then change
the test script gdb.c++/namespace.exp to XFAIL the test with
stabs+ format and v3 (or later) compilers.

Michael C


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2002-12-09 18:59 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-12-06 13:06 Namespaces with gcc v3 stabs+? Michael Elizabeth Chastain
2002-12-06 17:27 ` David Carlton
2002-12-07  6:49   ` Stan Shebs
2002-12-09 10:59     ` David Carlton
2002-12-06 17:58 ` Daniel Jacobowitz
  -- strict thread matches above, loose matches on Subject: below --
2002-12-06 19:48 Michael Elizabeth Chastain
2002-12-05 18:06 Michael Elizabeth Chastain
2002-12-05 16:31 Michael Elizabeth Chastain
2002-12-05 17:14 ` Daniel Jacobowitz
2002-12-06 11:25   ` David Carlton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox