Date: Thu, 30 Apr 2015 10:00:17 -0600
From: David Shrader <dshrader@lanl.gov>
I have a user that is claiming gdb 7.2 does not work with C++ code
compiled with GCC 4.8.2. Gdb is provided by the system (RHEL 6) while
the compiler is one that I have provided. I'm still working with the
user on possible errors in their workflow with gdb, but I wanted to
investigate the limits of gdb's ability to keep working with binaries
compiled by newer compilers because I really don't know. What kind of
changes in a compiler would cause a particular version of gdb to no
longer work correctly with it? For example, I know that a change in
library format would probably require a new version of gdb, but does a
change in C++ specs require the same treatment?
C++ support in GDB becomes significantly better with each new release,
and 7.2 is really old. So it's quite possible that GDB 7.2 will not
be good enough for C++ debugging, certainly not as good as 7.9, the
latest released version.
I know that running with the latest version of gdb is a good idea to get
passed bugs and to net new features, but I'm trying to gain some sort of
intuition as to when a new version of gdb is necessary rather than just
a good idea.
It is, specifically for C++ debugging. Also, newer versions of GDB
support newer versions of DWARF debug info, so your user could use the
"-gdwarf-4 -g3" compiler options to get better debugging information
available to GDB.