On Fri, Oct 03, 2008 at 08:29:40PM -0500, Peter O'Gorman wrote:
> Jack Howarth wrote:
> > On Tue, Aug 05, 2008 at 11:31:13AM -0500, Peter O'Gorman wrote:
> >> Jack Howarth wrote:
> >>> Does anyone know why gdb appears to be unable to find the debug
> >>> information
> >>> for libstdc++ in gcc 4.3 and gcc trunk on darwin9? This has been reported
> >>> before
> >>> as...
> >>>
> >>> https://trac.macports.org/ticket/16102
> >>>
> >>> Under current gcc trunk, using Apple's current Xcode 3.1's gdb reports the
> >>> errors of the form...
> >>>
> >>> warning: Could not find object file
> >>> "/sw/src/fink.build/gcc44-4.3.999-20080803/darwin_objdir/i686-apple-darwin9/libstdc++-v3/src/.libs/libstdc++.lax/libmath.a/signbit.o"
> >>> - no debug information available for
> >>> "../../../../gcc-4.4-20080803/libstdc++-v3/libmath/signbit.c".
> >>>
> >>> when I try to run a binary linked to libstdc++ in gdb. My gcc build
> >>> directory doesn't
> >>> have a libstdc++.lax directory left in it. Is this a flaw in the .la
> >>> files for gcc?
> >>> Thanks in advance for any advice. I am trying to puzzle out if this is a
> >>> gcc bug or
> >>> a gdb bug so that I can file a radar report against gdb if it is the
> >>> later.
> >>> Jack
> >>>
> >> The debug information is stored in the object files. Libtool uses a
> >> convenience library, and, because darwin's linked does not have the
> >> equivalent of --whole-archive --no-whole-archive to ensure that all
> >> members of specific archives are loaded, it unpacks the archive and adds
> >> all the objects. Having created the output, it then deletes these
> >> objects, leaving the debugger with no object files.
> >>
> >> This is "fixed" in recent GNU libtool by calling dsymutil on the newly
> >> created shared library. I have not checked if gcc's version of libtool
> >> has this change. I'll check when I have time and submit a patch if that
> >> is not the case.
>
>
> > Peter,
> > I am still seeing this problem with the current gcc trunk after the
> > libtool update. Are we still messing some additional changes for darwin
> > to eliminate these problems with Apple's gdb not properly finding the
> > object files for libstdc++?
> > Jack
>
> Hi Jack,
>
> How are you starting GDB? Is your build tree still around with all the
> object files in it?
>
> Peter
> --
> Peter O'Gorman
> http://pogma.com
Peter,
If I compile a short c++ program like...
#include <iostream>
using namespace std;
main()
{
cout << "Hello World!" << endl; cout << "Welcome to C++ Programming" <<
endl; }
with the g++ compiler from gcc trunk and execute...
gdb a.out
...using the Xcode 3.1.1 gdb under MacOS X 10.5.5 on Macintel, I get...
warning: Could not find object file
"/sw/src/fink.build/gcc44-4.3.999-20081001/darwin_objdir/i686-apple-darwin9/libstdc++-v3/src/.libs/libstdc++.lax/libmath.a/signbit.o"
- no debug information available for
"../../../../gcc-4.4-20081001/libstdc++-v3/libmath/signbit.c".
..etc. The build directory from my fink packaging is still remaining but I
get...
ls -l
/sw/src/fink.build/gcc44-4.3.999-20081001/darwin_objdir/i686-apple-darwin9/libstdc++-v3/src/.libs/libstdc++.lax/libmath.a/signbit.o
ls:
/sw/src/fink.build/gcc44-4.3.999-20081001/darwin_objdir/i686-apple-darwin9/libstdc++-v3/src/.libs/libstdc++.lax/libmath.a/signbit.o:
No such file or directory
The
/sw/src/fink.build/gcc44-4.3.999-20081001/darwin_objdir/i686-apple-darwin9/libstdc++-v3/src/.libs/
directory exists but it
doesn't contain a libstdc++.lax subdirectory.
Jack