This is the mail archive of the
mailing list for the GDB project.
Re: c++ debugging hosed
- From: Daniel Berlin <dan at cgsoftware dot com>
- To: Benjamin Kosnik <bkoz at redhat dot com>
- Cc: Eli Zaretskii <eliz at is dot elta dot co dot il>, <jason at redhat dot com>, <libstdc++ at gcc dot gnu dot org>, <gdb at sources dot redhat dot com>
- Date: Sun, 25 Nov 2001 15:29:08 -0500 (EST)
- Subject: Re: c++ debugging hosed
On Sun, 25 Nov 2001, Benjamin Kosnik wrote:
> > No, it's relevant to STABS, too.
> > It's due to not properly searching virtual baseclasses.
> > I might still have the changes to do that somewhere, if someone wants
> > them.
> This has been broken for some time now. I'd appreciate it if it got
> fixed, so that C++ could be debugged properly.
I'm sure a lot of people would.
Unfortunately, it appears I don't have the code i had worked up to
abstract out the base class offset finding anymore.
What's happening is that GDB wants to know the baseclass offset, and
the routine it uses is tuned to either gnu-v2 or hp aCC (it checks
for something only hp's debug readers fill in, and if it doesn't find
it, it assumes gnu-v2), and the gnu-v2 code either returns the wrong
value (weird errors occur), or -1, which gives you "virtual baseclass
botch"/attempts to deref int values as pointers.
baseclass_offset needs to be abstracted into the cp abi model, and all
existing uses need to use it.