Re: c++ debugging hosed

Benjamin Kosnik
2001-11-14T20:16:01Z

Hey. Thanks for the hack.

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

Yay. I disabled it.

#include <sstream>

void test01()
{
std::ostringstream oss; // break here
}

I'm still having some difficulty, however. In the above,

(gdb) p oss
$1 = {<basic_ostream<char,std::char_traits<char> >> =
{<basic_ios<char,std::char_traits<char> >> = <invalid address>,
_vptr.basic_ostream<char,std::char_traits<char> > = 0x80faa4c},
_M_stringbuf = {<basic_streambuf<char,std::char_traits<char> >> = {
_vptr.basic_streambuf<char,std::char_traits<char> > = 0x80faa88,
_M_buf = 0x811955c "", _M_buf_size = 0, _M_buf_size_opt = 512,
_M_buf_unified = false, _M_in_beg = 0x0, _M_in_cur = 0x0,
_M_in_end = 0x0, _M_out_beg = 0x811955c "", _M_out_cur = 0x811955c
"",
_M_out_end = 0x811955c "", _M_mode = 16, _M_buf_locale = {static
none = Internal: global symbol `_ZNSt6locale4noneE' found in
/mnt/hd/src/src.gcc/libstdc++-v3/src/locale.cc psymtab but not in symtab.
_ZNSt6locale4noneE may be an inlined function, or may be a template function
(if a template, try specifying an instantiation: _ZNSt6locale4noneE<type>).
(gdb) p oss._M_streambuf
virtual baseclass botch

I haven't tried this with a dwarf2 toolchain yet, I will in a bit.
Is there a last known good date for gdb so that I can revert my sources
until this is fixed?

thanks,
benjamin