This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: using GDB 5 on Solaris 7 with Sun WS5.0


Hmmm.  Can I use a c++filt/dem type program that can take mangled names and
produce demangled names to get around the name mangling problem?

Also, I still cannot debug a program unless I include "-xs".  Is the psymtab
stuff not meant to deal with non "-xs" code?  Or am I stuck using "-xs" to
debug under WS5.0 and GDB on Solaris 7?

-----Original Message-----
From: Daniel Berlin [mailto:dan@www.cgsoftware.com]
Sent: Friday, March 23, 2001 2:35 PM
To: Tanvir Hassan
Cc: 'Michael Elizabeth Chastain'; gdb@sourceware.cygnus.com
Subject: RE: using GDB 5 on Solaris 7 with Sun WS5.0




On Fri, 23 Mar 2001, Tanvir Hassan wrote:

> Here's the stuff I get from "man CC" on SunWorkshop 5 C++:
> 
> Note that -compat=5 (which lets me use STL) will set the __cplusplus macro
> to "199711L".  I don't know if that helps in determining which ABI those
> guys are following.  Also, I tried to compile helloworld.cpp with -g and
see
> if the newest snapshot (23/Mar/2001) could debug it without me resorting
to
> -xs and it cannot.  Is there an option or config.h option that I need to
> enable psymtab stuff?
Nope.
It's automagic.

> 
> 
>      -compat[=(4|5)]
>                Sets the compiler to be compatible with 4.0.1,
>                4.1, and 4.2 compilers; or with full 5.0. This
>                option controls the preprocessor __cplusplus
>                macro.
> 
>                The C++ compiler has two principal modes.  One
>                accepts the semantics and language defined by the
>                Annotated C++ Reference Manual (ARM) and used in
>                the 4.2 compiler (the compatibility mode, -com-
>                pat=4).  The other accepts constructs according to
>                the ANSI/ISO standard (standards mode, -compat=5).
>                These two modes are incompatible with each other
>                because the ANSI/ISO standard forces significant,
>                incompatible changes in name mangling, vtable lay-
>                out, and other ABI details. These two modes are
>                differentiated by the -compat option as shown in
>                the following values.

You are misreading it. All this means is that they changed their ABI to be
able to support the ISO standard, not that they are using a standard ABI.
They are most certainly not.  We have 0 support for their ABI, so you
won't be able to debug in any useful way.

 > >                Value
Meaning > 
>                -compat=4      Compile for compatibility with C++
>                               4.0.1, C++ 4.1, and C++ 4.2 (Sets
>                               __cplusplus macro to 1.)
> 
>                -compat=5      Compile with full C++ 5.0 features.
>                               (Sets __cplusplus macro to
>                               199711L.)
> 
>                Defaults:
> 
>                If the -compat option is not specified, -compat=5
>                is assumed.  If only -compat is specified, -com-
>                pat=4 is assumed.
> 
>                Interactions:
> 
>                The -xarch=v9 option and the -compat[=4] option
>                are not supported when used together.
> 
> -----Original Message-----
> From: Michael Elizabeth Chastain [mailto:chastain@cygnus.com]
> Sent: Friday, March 23, 2001 9:23 AM
> To: gdb@sourceware.cygnus.com; tanvir.hassan@tumisoftware.com
> Subject: Re: using GDB 5 on Solaris 7 with Sun WS5.0
> 
> 
> Hi Tanvir,
> 
> > I have heard that someone might have changed GDB to do "lazy" loading
> > of symbols by reading them from the *.o instead of the exe and thus
> > obviating the need for "-xs", but I don't see any mention of this in
> > any of the source.
> 
> That is the "partial symtab" (psymtab) code.
> 
> > 2) the name mangling/vtable scheme of Sun WS5.0 is apparently using the
> > ISO/ANSI ABI standard and GDB cannot deal with it (it needs an new BFD
to
> > handle this?  or is there a generic name de-mangling place in the code?)
> 
> Recent snapshots of gdb, and the current CVS version of gdb, operate with
> the new multi-vendor C++ ABI:
> 
>   http://reality.sgi.com/dehnert_engr/cxx/cxx-summary.html
> 
> If you could provide a URL or an ISO reference number for that "ISO/ANSI
> ABI standard", I could check if it's the same as the "new ABI" standard
> that we're working on supporting.
> 
> Michael Elizabeth Chastain
> <chastain@redhat.com>
> "love without fear"
> 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]