This is the mail archive of the gdb-patches@sourceware.org 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: Problems while debugging fortran


> > +	case DW_AT_calling_convention:
> > +	  /* DWARF standard suggests to use value DW_CC_program of attribute
> > +	   DW_AT_calling_convention to indicate the Fortran main program.
> > +	   The following code is to check this.  */
> 
> This comment isn't right.  The Fortran main program expects to have
> its arguments passed to it differently than other subroutines or
> functions; that's what DW_AT_calling_convention is meant to express.
> The comment should say something like:
> 
>   /* DWARF doesn't provide a way to identify a program's entry point.
>      However, the Fortran main program receives its arguments via a
>      special calling convention; we look for that to recognize the
>      program's entry point.  */

I agree with Jim's comment, but on the other hand, I propose a slightly
different way of saying this:

   /* In Fortran programs compiled with XLF, the only way we have found
      so far to identify the main procedure is by using the fact that
      the calling convention is different from the other procedures:
      The DW_AT_calling_convention attribute is set to DW_CC_program.

      This is not the intent of this attribute as documented in the
      DWARF standard, but we haven't found any other distinctive
      characteristic of the main procedure, so we check the calling
      convention for Fortran compilation units.  */

I want to steer away from the concept of "entry point", because the
main is not necessarily the entry point. For instance, in Ada, the
entry point is distinct from the main procedure.

Is Carlos Eduado's patch OK with the comment I suggest?

-- 
Joel


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