This is the mail archive of the gdb-patches@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]
Other format: [Raw text]

Re: [PATCH] DW_AT_calling_convention support


Hi Daniel,

> I'd rather save a pointer the symbol for the main function, or
> something along those lines - do you think that's workable?
Sounds good. Note that I'm making the assumption that the symbol is
associated with a type that is only associated with that symbol (iff).

I think it should be API driven, like set_main_symbol () and
get_main_symbol () and situated in symtab.c alonside set_main_name() and
main_name().

Petr
> 
> On Tue, Jul 09, 2002 at 05:36:46PM -0400, Petr Sorfa wrote:
> > Hi Daniel,
> >
> > Valid point, however there is a (hopefully not misguided) reason; I use
> > it when printing a subroutine type for FORTRAN95. I make the assumption
> > that determining whether a symbol name is equivalent to main_name() is
> > not sufficient.
> >
> > Petr
> > > > Patch for supporting DW_AT_calling_convention. This helps GDB identify
> > > > the "main" program for languages that do not have a starting subroutine
> > > > called "main". The patch also adds a new type flag,
> > > > TYPE_FLAG_MAIN_PROGRAM which is set if the type is describing a "main"
> > > > entry point. This can be used, for example, in noting a subroutine type
> > > > as a FORTRAN PROGRAM.
> > > >
> > > > 2002-07-09 Petr Sorfa (petrs@caldera.com)
> > > >
> > > >         *  dwarf2read.c (read_subroutine_type): Expanded to recognize
> > > >            the DW_AT_calling_convention DWARF attribute and for
> > > >            DW_CC_program set the TYPE_FLAG_MAIN_PROGRAM type flag
> > > >            and call set_main_name ().
> > > >            (read_partial_die): Now recognizes the
> > > >            DW_AT_calling_convention attribute and calls set_main_name().
> > > >            Note that TYPE_FLAG_MAIN_PROGRAM type flag is not set, as
> > > >            the partial_die might not denote a subroutine type.
> > > >
> > > >         *  gdbtypes.h (TYPE_FLAG_MAIN_PROGRAM): New type flag which
> > > >            indicates whether the type denotes a main program subroutine.
> > > >            (TYPE_MAIN_PROGRAM): New macro that returns a non-zero value
> > > >            if the type describes a main program subroutine.
> > >
> > > Why is the type flag necessary?  It seems wasteful to allocate a bit in
> > > every type when there will presumably only be one such routine.
> > >
> > > --
> > > Daniel Jacobowitz                           Carnegie Mellon University
> > > MontaVista Software                         Debian GNU/Linux Developer
> >
> >
> 
> --
> Daniel Jacobowitz                           Carnegie Mellon University
> MontaVista Software                         Debian GNU/Linux Developer


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