From: Daniel Jacobowitz <drow@mvista.com>
To: Michael Elizabeth Chastain <mec@shout.net>
Cc: gdb@sources.redhat.com
Subject: Re: Another "ptype B" validity question
Date: Tue, 03 Dec 2002 08:27:00 -0000 [thread overview]
Message-ID: <20021203162732.GA8100@nevyn.them.org> (raw)
In-Reply-To: <200212031556.gB3Fuwb30282@duracef.shout.net>
On Tue, Dec 03, 2002 at 09:56:58AM -0600, Michael Elizabeth Chastain wrote:
> I'm seeing some new output from the "ptype" command when I use a new
> version of the compiler.
>
> Here are some gdb.log excerpts.
>
> The first excerpt is fine:
>
> # gdb HEAD, gcc 3.2.1, binutils 2.13.1, stabs+
> ptype class B
> type = class B : public A {
> public:
> int b;
> int x;
>
> B & operator=(B const&);
> B(B const&);
> B();
> }
> (gdb) PASS: gdb.c++/classes.exp: ptype class B
>
> The second excerpt raises an issue:
>
> # gdb HEAD, gcc HEAD, binutils 2.13.1, stabs+
> ptype class B
> type = class B : public A {
> public:
> A;
> int b;
> int x;
>
> B & operator=(B const&);
> B(B const&);
> B();
> }
> (gdb) FAIL: gdb.c++/classes.exp: ptype class B
>
> Note the "A" line. I suppose this is gdb's way of showing the
> base class as a data member.
>
> My questions are:
>
> . What should gdb print for this ptype operation?
Ideally? Without checking the source, I'd guess:
type = class B : public A {
public:
int b;
int x;
}
We do not have enough information to figure out that the constructors
are artificial in stabs+, though. Lord, I've tried and tried - I can
produce exactly the same debug output with artificial and explicit
constructors. I had a couple of heuristics for this but they are never
terribly reliable.
> . If gdb does print the "A;" member, is that acceptable or not?
> Note that this is a slightly different question!
It is _not_ acceptable. I thought I'd gotten most of these but
obviously I've missed some. Please do file a bug.
> . More generally, what is the long term future of stabs+?
Rotting in a dark pit somewhere?
Seriously, we need to either accept limited C++ support with stabs, or
make GCC emit Sun DBX style stabs which have enough information. And
make GDB understand them since it doesn't right now. Since GCC 3.2 has
changed the default to DWARF-2 this is a looooong way down my priority
list!
> I really need an answer for #2 so that I can decide whether to change
> the test script or brandish the FAIL in a bug report.
>
> My view is that the test suite should be liberal about what it accepts
> in the output of "ptype" as long as it is somehow correct and does not
> mislead human users. In this case, I think that most C++ programmers
> would understand the nature of the "A;" line, so I would like to
> change classes.exp to accept it.
Please don't.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
next prev parent reply other threads:[~2002-12-03 16:27 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-03 7:57 Michael Elizabeth Chastain
2002-12-03 8:08 ` Gabriel Dos Reis
2002-12-03 8:27 ` Daniel Jacobowitz [this message]
2002-12-03 8:41 Michael Elizabeth Chastain
2002-12-04 10:20 Michael Elizabeth Chastain
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=20021203162732.GA8100@nevyn.them.org \
--to=drow@mvista.com \
--cc=gdb@sources.redhat.com \
--cc=mec@shout.net \
/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