|
List Info
Thread: Re: Problems while debugging fortran
|
|
| Re: Problems while debugging fortran |

|
2007-10-25 11:06:54 |
Hi,
> This is very unclear, since they don't explain what
"support"
> refers to. But for people stuck with XLF, if we can
improve their
> lives without hurting the rest of GDB, I'm ok with
compromising and
> using this attribute value be used to find the main.
I'd like to support this comprise, and I'll note that other
compilers
(Intel and Sun, at least) already use this convention.
For the longer term, what do you think is the optimal
solution? I'd
like to make gfortran, the Fortran front-end in GCC, do The
Right
Thing, but what is it? Should we add this
DW_AT_calling_convention tag
for the time being, until the meaning of the DWARF standard
is made
clearer?
FX
PS: I might submit patches to GDB in the future. Could
someone send me
copyright assignment form? (I already have a GCC assignment,
if that
makes any difference)
|
|
| Re: Problems while debugging fortran |
  United States |
2007-10-25 12:06:21 |
On Thu, Oct 25, 2007 at 05:06:54PM +0100, Fran?ois-Xavier
Coudert wrote:
> For the longer term, what do you think is the optimal
solution? I'd
> like to make gfortran, the Fortran front-end in GCC, do
The Right
> Thing, but what is it? Should we add this
DW_AT_calling_convention tag
> for the time being, until the meaning of the DWARF
standard is made
> clearer?
I'll let Jim answer this, though I think it's reasonable.
> PS: I might submit patches to GDB in the future. Could
someone send me
> copyright assignment form? (I already have a GCC
assignment, if that
> makes any difference)
Sure, I will.
--
Daniel Jacobowitz
CodeSourcery
|
|
| Re: Problems while debugging fortran |
  United States |
2007-10-25 13:43:57 |
Daniel Jacobowitz <drow at false.org> writes:
> On Thu, Oct 25, 2007 at 05:06:54PM +0100,
Fran?ois-Xavier Coudert wrote:
>> For the longer term, what do you think is the
optimal solution? I'd
>> like to make gfortran, the Fortran front-end in
GCC, do The Right
>> Thing, but what is it? Should we add this
DW_AT_calling_convention tag
>> for the time being, until the meaning of the DWARF
standard is made
>> clearer?
>
> I'll let Jim answer this, though I think it's
reasonable.
To be clear: I think the actual code in Carlos's patch is
just fine.
The comment, though, should not say things that are simply
untrue.
Which is why I suggested a new comment, instead of rejecting
the
patch. Whether or not we like the state of DWARF in this
regard, the
comment should correct describes the state of play, no?
|
|
| Re: Problems while debugging fortran |
  United States |
2007-10-25 14:01:50 |
On Thu, Oct 25, 2007 at 11:43:57AM -0700, Jim Blandy wrote:
> To be clear: I think the actual code in Carlos's patch
is just fine.
> The comment, though, should not say things that are
simply untrue.
> Which is why I suggested a new comment, instead of
rejecting the
> patch. Whether or not we like the state of DWARF in
this regard, the
> comment should correct describes the state of play,
no?
However, the Fortran main program receives its arguments
via a
special calling convention
I don't think that's true. As far as I know it has a
perfectly
ordinary calling convention.
As for Carlos's comment, I don't know if it's true or not,
but
it certainly seems to be what everyone else interprets the
DWARF standard to suggest
--
Daniel Jacobowitz
CodeSourcery
|
|
| Re: Problems while debugging fortran |
  United States |
2007-10-25 14:27:25 |
Here's a revised comment that may explain what's going on
better:
/* DWARF doesn't provide a way to identify a program's
source-level
entry point. DW_AT_calling_convention attributes are
only meant
to describe functions' calling conventions.
However, because it's a necessary piece of information
in
Fortran, and because DW_CC_program is the only piece of
debugging
information whose definition refers to a 'main program'
at all,
several compilers have begun marking Fortran main
programs with
DW_CC_program --- even when those functions use the
standard
calling conventions.
So until DWARF specifies a way to provide this
information and
compilers pick up the new representation, we'll support
this
practice. */
|
|
| Re: Problems while debugging fortran |
  United States |
2007-10-25 15:24:06 |
> Here's a revised comment that may explain what's going
on better:
>
> /* DWARF doesn't provide a way to identify a
program's source-level
> entry point. DW_AT_calling_convention attributes
are only meant
> to describe functions' calling conventions.
>
> However, because it's a necessary piece of
information in
> Fortran, and because DW_CC_program is the only
piece of debugging
> information whose definition refers to a 'main
program' at all,
> several compilers have begun marking Fortran main
programs with
> DW_CC_program --- even when those functions use
the standard
> calling conventions.
>
> So until DWARF specifies a way to provide this
information and
> compilers pick up the new representation, we'll
support this
> practice. */
I think that's a great comment. Let's use that one.
--
Joel
|
|
| Re: Problems while debugging fortran |
  United States |
2007-10-25 15:36:24 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Joel Brobecker wrote:
> I think that's a great comment. Let's use that one.
>
All right. Here's the updated patch with Jim's comments. Ok
now?
Regards,
- --
Carlos Eduardo Seo
Software Engineer
IBM Linux Technology Center
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFHIP5Hqvq7Aov/qQARAg1wAKCKTPmOboGpEXy+4JOYI/t6ky5haQCf
TSE4
K7lNORxqXOlJqRSJKSR/ZQk=
=aeaW
-----END PGP SIGNATURE-----
|
|
|
|
| Re: Problems while debugging fortran |
  United States |
2007-10-25 15:41:34 |
> 2007-10-25 Wu Zhou <woodzltc cn.ibm.com>
> Carlos Eduardo Seo <cseo linux.vnet.ibm.com>
> Jim Blandy <jimb codesourcery.com>
>
> * dwarf2read.c (read_partial_die): check the value
> of DW_AT_calling_convention in Fortran programs.
Just one minor comment:
> + if ((DW_UNSND (&attr) == DW_CC_program)
&& (cu->language == language_fortran))
Could you remove the unnecessary extra parens and split this
line
into two (it's too long):
if (DW_UNSND (&attr) == DW_CC_program
&& cu->language == language_fortran)
Your patch is approved with that adjustment.
Thanks,
--
Joel
|
|
| Re: Problems while debugging fortran |
  Germany |
2007-10-25 15:55:05 |
Carlos Eduardo Seo <cseo linux.vnet.ibm.com>
writes:
> + if ((DW_UNSND (&attr) == DW_CC_program)
&& (cu->language == language_fortran))
Please remove the extra parens and fold the line to keep it
below 80
columns.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg,
Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5
214B 8276 4ED5
"And now for something completely different."
|
|
| Re: Problems while debugging fortran --
DWARF |
  United States |
2007-11-13 11:45:51 |
Hi --
I haven't been following this thread and was just told about
it.
Disclaimer: I haven't read all of the discussion about this
issue.
The DWARF Committee has been considering a couple different
proposals for an extension to DWARF to identify the
"main" routine
for Fortran or other languages which need this. An early
version of
the proposal can be found on the DWARF website:
http://dwarfstd.org/I
ssues.php. A revised proposal which will
have an attribute in the Compilation Unit DIE which points
to the
"main" subprogram is under development.
Carlos Eduardo Seo wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>
>
> Joel Brobecker wrote:
>> Just one minor comment:
>>
>>> + if ((DW_UNSND (&attr) ==
DW_CC_program) && (cu->language ==
> language_fortran))
>> Could you remove the unnecessary extra parens and
split this line
>> into two (it's too long):
>>
>> if (DW_UNSND (&attr) == DW_CC_program
>> && cu->language ==
language_fortran)
>>
>> Your patch is approved with that adjustment.
>>
>> Thanks,
> Ok, here's the version I commited, with Joel's
suggestion and approval.
>
> Regards,
>
> - --
> Carlos Eduardo Seo
> Software Engineer
> IBM Linux Technology Center
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.7 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
>
iD8DBQFHIQNMqvq7Aov/qQARAlRVAJsEheBLCyh8VdDHPy4Cyg5avI55hACe
Jxaz
> +Y3B2mdbNkmBF9G/gthtq/c=
> =xOwT
> -----END PGP SIGNATURE-----
>
>
>
>
------------------------------------------------------------
------------
>
> 2007-10-25 Wu Zhou <woodzltc cn.ibm.com>
> Carlos Eduardo Seo <cseo linux.vnet.ibm.com>
> Jim Blandy <jimb codesourcery.com>
>
> * dwarf2read.c (read_partial_die): check the value
> of DW_AT_calling_convention in Fortran programs.
>
> Index: src/gdb/dwarf2read.c
>
============================================================
=======
> --- src.orig/gdb/dwarf2read.c
> +++ src/gdb/dwarf2read.c
>  -5616,6 +5616,25  read_partial_die (struct
partial_die_inf
> case DW_AT_byte_size:
> part_die->has_byte_size = 1;
> break;
> + case DW_AT_calling_convention:
> + /* DWARF doesn't provide a way to identify a
program's source-level
> + entry point. DW_AT_calling_convention
attributes are only meant
> + to describe functions' calling conventions.
> +
> + However, because it's a necessary piece of
information in
> + Fortran, and because DW_CC_program is the only
piece of debugging
> + information whose definition refers to a 'main
program' at all,
> + several compilers have begun marking Fortran
main programs with
> + DW_CC_program --- even when those functions use
the standard
> + calling conventions.
> +
> + So until DWARF specifies a way to provide this
information and
> + compilers pick up the new representation, we'll
support this
> + practice. */
> + if (DW_UNSND (&attr) == DW_CC_program
> + && cu->language ==
language_fortran)
> + set_main_name (part_die->name);
> + break;
> default:
> break;
> }
--
Michael Eager eager eagercon.com
1960 Park Blvd., Palo Alto, CA 94306 650-325-8077
|
|
[1-10]
|
|