Re: c++ debugging hosed

Daniel Berlin
2001-11-25T16:34:30Z

On Sun, 25 Nov 2001, Eli Zaretskii wrote:

> > From: Jason Merrill <jason@redhat.com>
> > Date: Wed, 14 Nov 2001 16:02:11 +0000
> >
> > > --with-dwarf2:
> > > (gdb) p *this
> > > can't find class named `std::basic_filebuf<char, std::char_traits<char> >', as given by C++ RTTI
> >
> > > default:
> > > (gdb) p *this
> > > Attempt to take contents of a non-pointer value.
> >
> > > Sadly, this bug has been around for 2 weeks now. It's making debugging
> > > C++ code more difficult than it should be. Any hope for a quick fix?
> >
> > I just updated my gdb for the first time in months and ran into the same
> > problem. Looks like the V3 ABI support code isn't ready for prime time.
> > Until it is, you can disable it with this patch:
> >
> > *** gnu-v3-abi.c.~1~ Wed Nov 14 12:33:51 2001
> > --- gnu-v3-abi.c Wed Nov 14 15:59:39 2001
> > *************** init_gnuv3_ops (void)
> > *** 349,355 ****
> > --- 360,368 ----
> > void
> > _initialize_gnu_v3_abi (void)
> > {
> > + #if 0
> > init_gnuv3_ops ();
> >
> > register_cp_abi (gnu_v3_abi_ops);
> > + #endif
> > }
>
> The above code is in GDB 5.1, and it isn't disabled. I'm about to
> prepare a binary release of the DJGPP port, so I'd like to ask whether
> people here would recommend commenting defining away this code. Is
> this only a DWARF2 issue, or is the same problem relevant to stabs,
> say?
>
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.
--Dan