This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: gdb 5.3 issues with g++ 3.2 on RedHat 7.3 & Solaris 9.
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: "Joshua D. Marantz" <josh at carbondesignsystems dot com>
- Cc: gdb at sources dot redhat dot com
- Date: Mon, 23 Dec 2002 18:27:17 -0500
- Subject: Re: gdb 5.3 issues with g++ 3.2 on RedHat 7.3 & Solaris 9.
- References: <15879.37039.491529.709506@zinc.carbondesignsystems.com>
On Mon, Dec 23, 2002 at 05:39:43PM -0500, Joshua D. Marantz wrote:
> Hello,
>
> We are having trouble debugging C++ code. Are there a number of
> outstanding issues
Hundreds, I sometimes think.
> gdb 5.2.1, gdb 5.3
> g++ 3.1.1, 3.2, 3.2.1
> g++ compile options "-g", "-g3", "-ggdb", "-gstabs", "-gstabs+", "-gdwarf-2"
> SGI STL & STLport 4.5.3
> RedHat 7.3 & Solaris 9
I highly recommend using just -g and GCC 3.2.1; that'll give you
DWARF-2. -g3 is also good.
> Symptoms include:
>
> - breakpoints in constructors do not work. gdb says they get set successfully,
> but they do not actually break. This occurs whether the constructors are
> inline or out-of-line.
This generally works, although with DWARF-2 it's dodgy. The problem is
well understood and I haven't completely made up my mind what to do
about it yet.
> - casting on the command line does not work -- yields a syntax error
Never seen this; there are problems with naming types that might be
causing it, I suppose...
> - printing contents of instances of STL classes sometimes crashes
This should not happen in GDB 5.3.
> - frequent gdb crashes (sorry this is so vague...)
Nor should this, although I know of at least one (calling functions in
a breakpoint's command list isn't fixed yet).
> - when compiling with -gstabs+, I can print most structures, but I can't
> call class methods from gdb.
> - when compiling with -gdwarf-2, I can call class methods from gdb, but I can't
> print most structures
OK, that's really odd.
> - calling global functions from the debugger takes a long time and uses
> a lot of memory. calling class methods is fast however.
I swear I'd resolved this. Must be a new problem.
> - it is difficult to call template methods from the debugger
Yes.
> All these issues were not present using g++ 2.8.1 and gdb 4.17. In
> that environment most things worked well Although gdb 4.17 did crash
> a little too often, it was much more functional.
It had nothing to do with GDB. C++ was a simpler thing, then. A lot
simpler.
> We can't go back to those old tools because our C++ & STL usage goes
> beyond the capabilities of g++ 2.8.1 & 2.9.*.
>
> I can give testcases for all these things but it's really pretty
> basic C++ debugging.
>
> Is this enough information? Is there a path through these tools that
> works -- e.g. config options, versions, etc?
I'd appreciate small testcases for every one of these problems, if you
can manage it. We'll see what we can do.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer