This is the mail archive of the gdb@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] | |
Hi all,
I take as an example a Fortran source file containing en empty
subroutine and an empty program:
$ cat a.f90
subroutine foo
end subroutine foo
program bar
end
When I compile it with gfortran and load it into gdb, I can't set
breakpoints on "foo", but only on "foo_" (which is the mangled name).
I was looking into why gfortran doesn't emit the necessary debug info,
but I think it actually does. The relevant output from readelf says:
<1><19c>: Abbrev Number: 2 (DW_TAG_subprogram)
DW_AT_external : 1
DW_AT_name : foo
DW_AT_decl_file : 1
DW_AT_decl_line : 1
DW_AT_MIPS_linkage_name: foo_
DW_AT_low_pc : 0x4005fc
DW_AT_high_pc : 0x400602
DW_AT_frame_base : 0 (location list)
Now, what I don't understand is when I compile it with the Intel
compiler, it's possible to set breakpoints on "foo" as well as "foo_",
even though the debug info seems similar:
<1><187>: Abbrev Number: 3 (DW_TAG_subprogram)
DW_AT_decl_line : 1
DW_AT_decl_column : 12
DW_AT_decl_file : 1
DW_AT_inline : 0 (not inlined)
DW_AT_accessibility: 1 (public)
DW_AT_type : <17f>
DW_AT_prototyped : 0
DW_AT_name : foo
DW_AT_low_pc : 0x4028f0
DW_AT_high_pc : 0x4028f6
DW_AT_external : 1
Is "DW_AT_MIPS_linkage_name: foo_" the reason for this difference?
Should DW_AT_MIPS_linkage_name actually be emitted or is this wrong?
Thanks for your help,
FX
PS: please find attached the complete readelf output for both
compilers, I case more information is needed.
Attachment:
gfortran.txt
Description: Text document
Attachment:
intel.txt
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |