This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
gdb breakage wrt C++ on power pc between 7.0 and 7.3 (code compiled with gcc-3.3)?
- From: Stefan Puiu <stefan dot puiu at gmail dot com>
- To: gdb at sourceware dot org
- Date: Thu, 20 Sep 2012 15:19:52 +0300
- Subject: gdb breakage wrt C++ on power pc between 7.0 and 7.3 (code compiled with gcc-3.3)?
Hi,
Sorry if this question is rather belated. Some months ago we upgraded
from gdb 7.0.1 to gdb 7.3 and, on our powerpc (ppc750) embedded
platform, we noticed issues while debugging C++ code. Namely,
examining instances of some classes using multiple, complex
inheritance would hang gdb. The code is compiled with '-g' and without
optimizations.
Breakpoint 1, <namespace>::Class::someFun (this=0x102ec708, <...>)
at path/to/Class.cpp:898:898
898 path/to/Class.cpp:898: No such file or directory.
path/to/Class.cpp:898
(gdb) n
900 path/to/Class.cpp:898
(gdb) p this->m_member
warning: RTTI symbol not found for class '<namespace>::Class'
$1 = (Class &) @0x102ec5b8: warning: RTTI symbol not found for class
'<namespace>::Class'
[... first hang]
ò{Quit
(gdb) p this->m_member.m_globalId
òòò
[... had to kill the session]
This works fine with gdb 7.0.1.
We're compiling our code with an ancient toolchain: gcc-3.3.4 and
glibc-2.3.3. Is there some way to track compatibility between gdb
releases and older toolchains? Or maybe there is a regression that got
fixed?
Unfortunately I don't have a simple test case to reproduce this. Using
a simple class hierarchy with multiple inheritance doesn't exhibit the
problem, so it's something more complex that I can't yet pinpoint. I
don't see any weird options that we pass to gcc - "-mcpu=750" and
"-pipe" (plus defines like -D__STDC_LIMIT_MACROS) don't seem out of
place to me.
Thanks,
Stefan.