3.3-R gdb problems with C++

3.3-R gdb problems with C++

Post by Paul Southwor » Sat, 20 Nov 1999 04:00:00



I have several C++ developers having problems with gdb 4.18 on FreeBSD
3.3-RELEASE (i386).  We're using gcc 2.95 and the STL that comes with it.

I regret I don't have really stellar descriptions of these problems yet,
but I'm hoping someone will recognize what I'm talking about based on
the following clues:

Program received signal SIGTRAP, Trace/breakpoint trap.
Isis::LANCircuit::processHello (this=0x8337800, pdu=0x82f2b20,

    at ISISCircuit.cxx:1269
1269        if (inst()->isLevel1() && !pdu->addressMatch()) {
Current language:  auto; currently c++
(gdb) p inst()
Cannot resolve method LANCircuit::inst to any overloaded instance
(gdb) p _inst
$1 = (Proto *) 0x8337400
(gdb) p inst()->isLevel1()
Cannot resolve method LANCircuit::inst to any overloaded instance
(gdb) p _inst->isLevel1()
Cannot resolve method Proto::isLevel1 to any overloaded instance
(gdb) p pdu->addressMatch()
Cannot resolve overloaded method Hello::addressMatch to unique instance;
disambiguate by specifying function signature

Oddly, these problems (with the same code) are not observed when we
build on Linux (2.0.36 / RedHat 5.2).

Digging through the gdb mailing lists, I see a number of similar
complaints and no useful answers.

Trying to build any of the more recent gdb snapshots on FreeBSD 3.3-RELEASE
doesn't work either, blows up with many undefined things (eg, 'debug_copy')
in solib.c.  DejaNews showed lost of other people running into this same
problem, but again no answers.