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 -- Peter O'Gorman http://pogma.com