RE: gdb and Fortran90 arrays

Parker James E Contr AFRL/HEDR
2005-07-07T00:04:32Z

Hi Wu,
You are correct I am not using gfortran. I have been using 95 as a
compiler.
I have tried to distill my problem with the debugger to focus on the issue
at hand -- printing array data.

program Driver
implicit none
INTEGER, PARAMETER :: SP = KIND(1.0D0)

real(SP), dimension(2) :: guess ! dimension size = # of guesses
real(SP), dimension(4) :: z

interface
subroutine load(x1start,w,PVvector)
implicit none
INTEGER, PARAMETER :: SP = KIND(1.0D0)
real(SP), intent(in) :: x1start
real(SP), dimension(:), intent(inout) :: w
real(SP), dimension(:), intent(out) :: PVvector
end subroutine load

end interface
!***************************************************************************
***
! Begin main program

guess(1) = 1
guess(2) = 2

call load(0.0_sp,guess, z)
!************************************************************************
end program Driver

!**************************************************************************
! Subroutine: load
!**************************************************************************

subroutine load(x1start,w,PVvector)
implicit none
INTEGER, PARAMETER :: SP = KIND(1.0D0)
real(SP), intent(in) :: x1start
real(SP), dimension(:), intent(inout) :: w
real(SP), dimension(:), intent(out) :: PVvector

PVvector(1) = 0. ! Real Velocity
PVvector(2) = 1.2 ! Imag Velocity
PVvector(3) = w(1) ! Real Pressure
PVvector(4) = w(2) ! Imag Pressure
end subroutine load

Here's the readelf -wi output. Its very long and I'm not sure what you need
so here it is in all its glory.

The section .debug_info contains:

Compilation Unit @ 0:
Length: 422
Version: 2
Abbrev Offset: 0
Pointer Size: 4
<0>: Abbrev Number: 1 (DW_TAG_compile_unit)
DW_AT_stmt_list : 0
DW_AT_high_pc : 0x80494ec
DW_AT_low_pc : 0x8049440
DW_AT_producer : G95 Fortran 95 4.0.0 20050129 (experimental) (g95!)
Apr 4 2005
DW_AT_language : 1 (ANSI C)
DW_AT_name : gdbDriver.f90
DW_AT_comp_dir : /home/surfer/downloads/2ndharm-2.0/src
<1><8e>: Abbrev Number: 2 (DW_TAG_subprogram)
DW_AT_sibling : <106>
DW_AT_external : 1
DW_AT_name : MAIN_
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_prototyped : 1
DW_AT_type : <106>
DW_AT_low_pc : 0x8049440
DW_AT_high_pc : 0x80494ec
DW_AT_frame_base : 1 byte block: 55 (DW_OP_reg5)
<2><ab>: Abbrev Number: 3 (DW_TAG_variable)
DW_AT_name : U.0
DW_AT_type : <10e>
DW_AT_artificial : 1
DW_AT_location : 2 byte block: 75 78 (DW_OP_breg5: -8)
<2><b8>: Abbrev Number: 4 (DW_TAG_variable)
DW_AT_type : <106>
DW_AT_artificial : 1
DW_AT_location : 2 byte block: 75 74 (DW_OP_breg5: -12)
<2><c1>: Abbrev Number: 5 (DW_TAG_variable)
DW_AT_name : z.data
DW_AT_decl_file : 1
DW_AT_decl_line : 1
DW_AT_type : <117>
DW_AT_location : 3 byte block: 75 88 7f (DW_OP_breg5: -120)
<2><d3>: Abbrev Number: 5 (DW_TAG_variable)
DW_AT_name : z
DW_AT_decl_file : 1
DW_AT_decl_line : 1
DW_AT_type : <123>
DW_AT_location : 2 byte block: 75 58 (DW_OP_breg5: -40)
<2><df>: Abbrev Number: 5 (DW_TAG_variable)
DW_AT_name : guess.data
DW_AT_decl_file : 1
DW_AT_decl_line : 1
DW_AT_type : <1a1>
DW_AT_location : 2 byte block: 75 48 (DW_OP_breg5: -56)
<2><f4>: Abbrev Number: 5 (DW_TAG_variable)
DW_AT_name : guess
DW_AT_decl_file : 1
DW_AT_decl_line : 1
DW_AT_type : <123>
DW_AT_location : 3 byte block: 75 ac 7f (DW_OP_breg5: -84)
<1><106>: Abbrev Number: 6 (DW_TAG_base_type)
DW_AT_name : int4
DW_AT_byte_size : 4
DW_AT_encoding : 5 (signed)
<1><10e>: Abbrev Number: 6 (DW_TAG_base_type)
DW_AT_name : real8
DW_AT_byte_size : 8
DW_AT_encoding : 4 (float)
<1><117>: Abbrev Number: 7 (DW_TAG_array_type)
DW_AT_sibling : <123>
DW_AT_type : <10e>
<2><120>: Abbrev Number: 8 (DW_TAG_subrange_type)
DW_AT_upper_bound : 3
<1><123>: Abbrev Number: 9 (DW_TAG_structure_type)
DW_AT_sibling : <181>
DW_AT_name : array1
DW_AT_byte_size : 28
DW_AT_decl_file : 1
DW_AT_decl_line : 0
<2><132>: Abbrev Number: 10 (DW_TAG_member)
DW_AT_name : offset
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_type : <181>
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst:
0)
<2><143>: Abbrev Number: 10 (DW_TAG_member)
DW_AT_name : rank
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_type : <106>
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst:
4)
<2><152>: Abbrev Number: 10 (DW_TAG_member)
DW_AT_name : esize
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_type : <106>
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst:
8)
<2><162>: Abbrev Number: 10 (DW_TAG_member)
DW_AT_name : base
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_type : <18f>
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst:
12)
<2><171>: Abbrev Number: 10 (DW_TAG_member)
DW_AT_name : info
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_type : <191>
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst:
16)
<1><181>: Abbrev Number: 11 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <187>
<1><187>: Abbrev Number: 6 (DW_TAG_base_type)
DW_AT_name : int1
DW_AT_byte_size : 1
DW_AT_encoding : 5 (signed)
<1><18f>: Abbrev Number: 12 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
<1><191>: Abbrev Number: 7 (DW_TAG_array_type)
DW_AT_sibling : <1a1>
DW_AT_type : <106>
<2><19a>: Abbrev Number: 13 (DW_TAG_subrange_type)
DW_AT_type : <106>
DW_AT_upper_bound : 2
<1><1a1>: Abbrev Number: 14 (DW_TAG_array_type)
DW_AT_type : <10e>
<2><1a6>: Abbrev Number: 8 (DW_TAG_subrange_type)
DW_AT_upper_bound : 1
Compilation Unit @ 1aa:
Length: 483
Version: 2
Abbrev Offset: 173
Pointer Size: 4
<0><1b5>: Abbrev Number: 1 (DW_TAG_compile_unit)
DW_AT_stmt_list : 63
DW_AT_high_pc : 0x80495be
DW_AT_low_pc : 0x80494ec
DW_AT_producer : G95 Fortran 95 4.0.0 20050129 (experimental) (g95!)
Apr 4 2005
DW_AT_language : 1 (ANSI C)
DW_AT_name : gdbLoader.f90
DW_AT_comp_dir : /home/surfer/downloads/2ndharm-2.0/src
<1><238>: Abbrev Number: 2 (DW_TAG_subprogram)
DW_AT_sibling : <2e6>
DW_AT_external : 1
DW_AT_name : load_
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_prototyped : 1
DW_AT_type : <2e6>
DW_AT_low_pc : 0x80494ec
DW_AT_high_pc : 0x80495be
DW_AT_frame_base : 1 byte block: 55 (DW_OP_reg5)
<2><255>: Abbrev Number: 3 (DW_TAG_formal_parameter)
DW_AT_name : x1start
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_type : <2ee>
DW_AT_location : 2 byte block: 75 8 (DW_OP_breg5: 8)
<2><267>: Abbrev Number: 3 (DW_TAG_formal_parameter)
DW_AT_name : w
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_type : <380>
DW_AT_location : 2 byte block: 75 c (DW_OP_breg5: 12)
<2><273>: Abbrev Number: 3 (DW_TAG_formal_parameter)
DW_AT_name : pvvector
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_type : <38b>
DW_AT_location : 2 byte block: 75 10 (DW_OP_breg5: 16)
<2><286>: Abbrev Number: 4 (DW_TAG_variable)
DW_AT_type : <2e6>
DW_AT_artificial : 1
DW_AT_location : 2 byte block: 75 7c (DW_OP_breg5: -4)
<2><28f>: Abbrev Number: 5 (DW_TAG_subprogram)
DW_AT_sibling : <2ad>
DW_AT_external : 1
DW_AT_name : (indirect string, offset: 0x0):
_g95_init_assumed_shape
DW_AT_decl_file : 1
DW_AT_decl_line : 5
DW_AT_prototyped : 1
DW_AT_declaration : 1
<3><29d>: Abbrev Number: 6 (DW_TAG_formal_parameter)
DW_AT_type : <385>
<3><2a2>: Abbrev Number: 6 (DW_TAG_formal_parameter)
DW_AT_type : <385>
<3><2a7>: Abbrev Number: 6 (DW_TAG_formal_parameter)
DW_AT_type : <36e>
<2><2ad>: Abbrev Number: 7 (DW_TAG_variable)
DW_AT_name : U.1
DW_AT_type : <302>
DW_AT_artificial : 1
DW_AT_location : 2 byte block: 75 60 (DW_OP_breg5: -32)
<2><2ba>: Abbrev Number: 5 (DW_TAG_subprogram)
DW_AT_sibling : <2d8>
DW_AT_external : 1
DW_AT_name : (indirect string, offset: 0x0):
_g95_init_assumed_shape
DW_AT_decl_file : 1
DW_AT_decl_line : 5
DW_AT_prototyped : 1
DW_AT_declaration : 1
<3><2c8>: Abbrev Number: 6 (DW_TAG_formal_parameter)
DW_AT_type : <385>
<3><2cd>: Abbrev Number: 6 (DW_TAG_formal_parameter)
DW_AT_type : <385>
<3><2d2>: Abbrev Number: 6 (DW_TAG_formal_parameter)
DW_AT_type : <36e>
<2><2d8>: Abbrev Number: 7 (DW_TAG_variable)
DW_AT_name : U.0
DW_AT_type : <302>
DW_AT_artificial : 1
DW_AT_location : 2 byte block: 75 44 (DW_OP_breg5: -60)
<1><2e6>: Abbrev Number: 8 (DW_TAG_base_type)
DW_AT_name : int4
DW_AT_byte_size : 4
DW_AT_encoding : 5 (signed)
<1><2ee>: Abbrev Number: 9 (DW_TAG_const_type)
DW_AT_type : <2f3>
<1><2f3>: Abbrev Number: 10 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <2f9>
<1><2f9>: Abbrev Number: 8 (DW_TAG_base_type)
DW_AT_name : real8
DW_AT_byte_size : 8
DW_AT_encoding : 4 (float)
<1><302>: Abbrev Number: 11 (DW_TAG_structure_type)
DW_AT_sibling : <360>
DW_AT_name : array1
DW_AT_byte_size : 28
DW_AT_decl_file : 1
DW_AT_decl_line : 0
<2><311>: Abbrev Number: 12 (DW_TAG_member)
DW_AT_name : offset
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_type : <360>
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst:
0)
<2><322>: Abbrev Number: 12 (DW_TAG_member)
DW_AT_name : rank
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_type : <2e6>
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst:
4)
<2><331>: Abbrev Number: 12 (DW_TAG_member)
DW_AT_name : esize
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_type : <2e6>
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst:
8)
<2><341>: Abbrev Number: 12 (DW_TAG_member)
DW_AT_name : base
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_type : <36e>
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst:
12)
<2><350>: Abbrev Number: 12 (DW_TAG_member)
DW_AT_name : info
DW_AT_decl_file : 1
DW_AT_decl_line : 0
DW_AT_type : <370>
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst:
16)
<1><360>: Abbrev Number: 10 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <366>
<1><366>: Abbrev Number: 8 (DW_TAG_base_type)
DW_AT_name : int1
DW_AT_byte_size : 1
DW_AT_encoding : 5 (signed)
<1><36e>: Abbrev Number: 13 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
<1><370>: Abbrev Number: 14 (DW_TAG_array_type)
DW_AT_sibling : <380>
DW_AT_type : <2e6>
<2><379>: Abbrev Number: 15 (DW_TAG_subrange_type)
DW_AT_type : <2e6>
DW_AT_upper_bound : 2
<1><380>: Abbrev Number: 9 (DW_TAG_const_type)
DW_AT_type : <385>
<1><385>: Abbrev Number: 10 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <302>
<1><38b>: Abbrev Number: 9 (DW_TAG_const_type)
DW_AT_type : <385>
Compilation Unit @ 391:
Length: 1803
Version: 2
Abbrev Offset: 365
Pointer Size: 4
<0><39c>: Abbrev Number: 1 (DW_TAG_compile_unit)
DW_AT_stmt_list : 129
DW_AT_high_pc : 0x805f7a2
DW_AT_low_pc : 0x805f640
DW_AT_producer : GNU C 4.0.0 20050129 (experimental)
DW_AT_language : 1 (ANSI C)
DW_AT_name : /home/andy/g95.build/linux/gcc.linux/gcc/libgcc2.c

<1><401>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : int
DW_AT_byte_size : 4
DW_AT_encoding : 5 (signed)
<1><408>: Abbrev Number: 3 (DW_TAG_base_type)
DW_AT_name : (indirect string, offset: 0x21): unsigned int
DW_AT_byte_size : 4
DW_AT_encoding : 7 (unsigned)
<1><40f>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : long int
DW_AT_byte_size : 4
DW_AT_encoding : 5 (signed)
<1><41b>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : char
DW_AT_byte_size : 1
DW_AT_encoding : 6 (signed char)
<1><423>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : unsigned char
DW_AT_byte_size : 1
DW_AT_encoding : 8 (unsigned char)
<1><434>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : short unsigned int
DW_AT_byte_size : 2
DW_AT_encoding : 7 (unsigned)
<1><44a>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : long unsigned int
DW_AT_byte_size : 4
DW_AT_encoding : 7 (unsigned)
<1><45f>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : long long unsigned int
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
<1><479>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : __quad_t
DW_AT_decl_file : 4
DW_AT_decl_line : 38
DW_AT_type : <489>
<1><489>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : long long int
DW_AT_byte_size : 8
DW_AT_encoding : 5 (signed)
<1><49a>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : signed char
DW_AT_byte_size : 1
DW_AT_encoding : 6 (signed char)
<1><4a9>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : short int
DW_AT_byte_size : 2
DW_AT_encoding : 5 (signed)
<1><4b6>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : __off_t
DW_AT_decl_file : 4
DW_AT_decl_line : 67
DW_AT_type : <40f>
<1><4c5>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : __loff_t
DW_AT_decl_file : 4
DW_AT_decl_line : 68
DW_AT_type : <479>
<1><4d5>: Abbrev Number: 3 (DW_TAG_base_type)
DW_AT_name : (indirect string, offset: 0x21): unsigned int
DW_AT_byte_size : 4
DW_AT_encoding : 7 (unsigned)
<1><4dc>: Abbrev Number: 5 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <41b>
<1><4e2>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : __off64_t
DW_AT_decl_file : 4
DW_AT_decl_line : 128
DW_AT_type : <4c5>
<1><4f3>: Abbrev Number: 6 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
<1><4f5>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : FILE
DW_AT_decl_file : 2
DW_AT_decl_line : 45
DW_AT_type : <501>
<1><501>: Abbrev Number: 7 (DW_TAG_structure_type)
DW_AT_sibling : <747>
DW_AT_name : (indirect string, offset: 0x18): _IO_FILE
DW_AT_byte_size : 148
DW_AT_decl_file : 2
DW_AT_decl_line : 45
<2><50d>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _flags
DW_AT_decl_file : 3
DW_AT_decl_line : 262
DW_AT_type : <401>
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst:
0)
<2><51f>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_read_ptr
DW_AT_decl_file : 3
DW_AT_decl_line : 267
DW_AT_type : <4dc>
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst:
4)
<2><537>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_read_end
DW_AT_decl_file : 3
DW_AT_decl_line : 268
DW_AT_type : <4dc>
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst:
8)
<2><54f>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_read_base
DW_AT_decl_file : 3
DW_AT_decl_line : 269
DW_AT_type : <4dc>
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst:
12)
<2><568>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_write_base
DW_AT_decl_file : 3
DW_AT_decl_line : 270
DW_AT_type : <4dc>
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst:
16)
<2><582>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_write_ptr
DW_AT_decl_file : 3
DW_AT_decl_line : 271
DW_AT_type : <4dc>
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst:
20)
<2><59b>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_write_end
DW_AT_decl_file : 3
DW_AT_decl_line : 272
DW_AT_type : <4dc>
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst:
24)
<2><5b4>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_buf_base
DW_AT_decl_file : 3
DW_AT_decl_line : 273
DW_AT_type : <4dc>
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst:
28)
<2><5cc>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_buf_end
DW_AT_decl_file : 3
DW_AT_decl_line : 274
DW_AT_type : <4dc>
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst:
32)
<2><5e3>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_save_base
DW_AT_decl_file : 3
DW_AT_decl_line : 276
DW_AT_type : <4dc>
DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst:
36)
<2><5fc>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_backup_base
DW_AT_decl_file : 3
DW_AT_decl_line : 277
DW_AT_type : <4dc>
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst:
40)
<2><617>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_save_end
DW_AT_decl_file : 3
DW_AT_decl_line : 278
DW_AT_type : <4dc>
DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst:
44)
<2><62f>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _markers
DW_AT_decl_file : 3
DW_AT_decl_line : 280
DW_AT_type : <798>
DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst:
48)
<2><643>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _chain
DW_AT_decl_file : 3
DW_AT_decl_line : 282
DW_AT_type : <79e>
DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst:
52)
<2><655>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _fileno
DW_AT_decl_file : 3
DW_AT_decl_line : 284
DW_AT_type : <401>
DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst:
56)
<2><668>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _blksize
DW_AT_decl_file : 3
DW_AT_decl_line : 285
DW_AT_type : <401>
DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst:
60)
<2><67c>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _old_offset
DW_AT_decl_file : 3
DW_AT_decl_line : 286
DW_AT_type : <4b6>
DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst:
64)
<2><693>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _cur_column
DW_AT_decl_file : 3
DW_AT_decl_line : 290
DW_AT_type : <434>
DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst:
68)
<2><6aa>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _vtable_offset
DW_AT_decl_file : 3
DW_AT_decl_line : 291
DW_AT_type : <49a>
DW_AT_data_member_location: 2 byte block: 23 46 (DW_OP_plus_uconst:
70)
<2><6c4>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _shortbuf
DW_AT_decl_file : 3
DW_AT_decl_line : 292
DW_AT_type : <7a4>
DW_AT_data_member_location: 2 byte block: 23 47 (DW_OP_plus_uconst:
71)
<2><6d9>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _lock
DW_AT_decl_file : 3
DW_AT_decl_line : 296
DW_AT_type : <7b4>
DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst:
72)
<2><6ea>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _offset
DW_AT_decl_file : 3
DW_AT_decl_line : 305
DW_AT_type : <4e2>
DW_AT_data_member_location: 2 byte block: 23 4c (DW_OP_plus_uconst:
76)
<2><6fd>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : __pad1
DW_AT_decl_file : 3
DW_AT_decl_line : 311
DW_AT_type : <4f3>
DW_AT_data_member_location: 2 byte block: 23 54 (DW_OP_plus_uconst:
84)
<2><70f>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : __pad2
DW_AT_decl_file : 3
DW_AT_decl_line : 312
DW_AT_type : <4f3>
DW_AT_data_member_location: 2 byte block: 23 58 (DW_OP_plus_uconst:
88)
<2><721>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _mode
DW_AT_decl_file : 3
DW_AT_decl_line : 314
DW_AT_type : <401>
DW_AT_data_member_location: 2 byte block: 23 5c (DW_OP_plus_uconst:
92)
<2><732>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _unused2
DW_AT_decl_file : 3
DW_AT_decl_line : 316
DW_AT_type : <7ba>
DW_AT_data_member_location: 2 byte block: 23 60 (DW_OP_plus_uconst:
96)
<1><747>: Abbrev Number: 9 (DW_TAG_typedef)
DW_AT_name : _IO_lock_t
DW_AT_decl_file : 3
DW_AT_decl_line : 170
<1><755>: Abbrev Number: 10 (DW_TAG_structure_type)
DW_AT_sibling : <798>
DW_AT_name : _IO_marker
DW_AT_byte_size : 12
DW_AT_decl_file : 3
DW_AT_decl_line : 176
<2><768>: Abbrev Number: 11 (DW_TAG_member)
DW_AT_name : _next
DW_AT_decl_file : 3
DW_AT_decl_line : 177
DW_AT_type : <798>
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst:
0)
<2><778>: Abbrev Number: 11 (DW_TAG_member)
DW_AT_name : _sbuf
DW_AT_decl_file : 3
DW_AT_decl_line : 178
DW_AT_type : <79e>
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst:
4)
<2><788>: Abbrev Number: 11 (DW_TAG_member)
DW_AT_name : _pos
DW_AT_decl_file : 3
DW_AT_decl_line : 182
DW_AT_type : <401>
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst:
8)
<1><798>: Abbrev Number: 5 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <755>
<1><79e>: Abbrev Number: 5 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <501>
<1><7a4>: Abbrev Number: 12 (DW_TAG_array_type)
DW_AT_sibling : <7b4>
DW_AT_type : <41b>
<2><7ad>: Abbrev Number: 13 (DW_TAG_subrange_type)
DW_AT_type : <4d5>
DW_AT_upper_bound : 0
<1><7b4>: Abbrev Number: 5 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <747>
<1><7ba>: Abbrev Number: 12 (DW_TAG_array_type)
DW_AT_sibling : <7ca>
DW_AT_type : <41b>
<2><7c3>: Abbrev Number: 13 (DW_TAG_subrange_type)
DW_AT_type : <4d5>
DW_AT_upper_bound : 51
<1><7ca>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : SItype
DW_AT_decl_file : 5
DW_AT_decl_line : 77
DW_AT_type : <401>
<1><7d8>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : USItype
DW_AT_decl_file : 5
DW_AT_decl_line : 78
DW_AT_type : <408>
<1><7e7>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : DItype
DW_AT_decl_file : 5
DW_AT_decl_line : 81
DW_AT_type : <489>
<1><7f5>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : UDItype
DW_AT_decl_file : 5
DW_AT_decl_line : 82
DW_AT_type : <45f>
<1><804>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : float
DW_AT_byte_size : 4
DW_AT_encoding : 4 (float)
<1><80d>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : double
DW_AT_byte_size : 8
DW_AT_encoding : 4 (float)
<1><817>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : long double
DW_AT_byte_size : 12
DW_AT_encoding : 4 (float)
<1><826>: Abbrev Number: 14 (DW_TAG_structure_type)
DW_AT_sibling : <858>
DW_AT_name : DWstruct
DW_AT_byte_size : 8
DW_AT_decl_file : 5
DW_AT_decl_line : 329
<2><838>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : low
DW_AT_decl_file : 5
DW_AT_decl_line : 329
DW_AT_type : <7ca>
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst:
0)
<2><847>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : high
DW_AT_decl_file : 5
DW_AT_decl_line : 329
DW_AT_type : <7ca>
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst:
4)
<1><858>: Abbrev Number: 15 (DW_TAG_union_type)
DW_AT_sibling : <877>
DW_AT_byte_size : 8
DW_AT_decl_file : 5
DW_AT_decl_line : 340
<2><861>: Abbrev Number: 16 (DW_TAG_member)
DW_AT_name : s
DW_AT_decl_file : 5
DW_AT_decl_line : 338
DW_AT_type : <826>
<2><86b>: Abbrev Number: 16 (DW_TAG_member)
DW_AT_name : ll
DW_AT_decl_file : 5
DW_AT_decl_line : 339
DW_AT_type : <7e7>
<1><877>: Abbrev Number: 17 (DW_TAG_typedef)
DW_AT_name : DWunion
DW_AT_decl_file : 5
DW_AT_decl_line : 340
DW_AT_type : <858>
<1><887>: Abbrev Number: 18 (DW_TAG_variable)
DW_AT_name : stdin
DW_AT_decl_file : 2
DW_AT_decl_line : 133
DW_AT_type : <896>
DW_AT_external : 1
DW_AT_declaration : 1
<1><896>: Abbrev Number: 5 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <4f5>
<1><89c>: Abbrev Number: 18 (DW_TAG_variable)
DW_AT_name : stdout
DW_AT_decl_file : 2
DW_AT_decl_line : 134
DW_AT_type : <896>
DW_AT_external : 1
DW_AT_declaration : 1
<1><8ac>: Abbrev Number: 19 (DW_TAG_subprogram)
DW_AT_sibling : <9a3>
DW_AT_name : __udivmoddi4
DW_AT_decl_file : 1
DW_AT_decl_line : 843
DW_AT_prototyped : 1
DW_AT_type : <7f5>
DW_AT_inline : 3 (declared as inline and inlined)
<2><8c7>: Abbrev Number: 20 (DW_TAG_formal_parameter)
DW_AT_name : n
DW_AT_decl_file : 1
DW_AT_decl_line : 842
DW_AT_type : <7f5>
<2><8d1>: Abbrev Number: 20 (DW_TAG_formal_parameter)
DW_AT_name : d
DW_AT_decl_file : 1
DW_AT_decl_line : 842
DW_AT_type : <7f5>
<2><8db>: Abbrev Number: 20 (DW_TAG_formal_parameter)
DW_AT_name : rp
DW_AT_decl_file : 1
DW_AT_decl_line : 842
DW_AT_type : <9a3>
<2><8e6>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : nn
DW_AT_decl_file : 1
DW_AT_decl_line : 844
DW_AT_type : <9a9>
<2><8f1>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : dd
DW_AT_decl_file : 1
DW_AT_decl_line : 845
DW_AT_type : <9a9>
<2><8fc>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : rr
DW_AT_decl_file : 1
DW_AT_decl_line : 846
DW_AT_type : <877>
<2><907>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : d0
DW_AT_decl_file : 1
DW_AT_decl_line : 847
DW_AT_type : <7d8>
<2><912>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : d1
DW_AT_decl_file : 1
DW_AT_decl_line : 847
DW_AT_type : <7d8>
<2><91d>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : n0
DW_AT_decl_file : 1
DW_AT_decl_line : 847
DW_AT_type : <7d8>
<2><928>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : n1
DW_AT_decl_file : 1
DW_AT_decl_line : 847
DW_AT_type : <7d8>
<2><933>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : n2
DW_AT_decl_file : 1
DW_AT_decl_line : 847
DW_AT_type : <7d8>
<2><93e>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : q0
DW_AT_decl_file : 1
DW_AT_decl_line : 848
DW_AT_type : <7d8>
<2><949>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : q1
DW_AT_decl_file : 1
DW_AT_decl_line : 848
DW_AT_type : <7d8>
<2><954>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : b
DW_AT_decl_file : 1
DW_AT_decl_line : 849
DW_AT_type : <7d8>
<2><95e>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : bm
DW_AT_decl_file : 1
DW_AT_decl_line : 849
DW_AT_type : <7d8>
<2><969>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : ww
DW_AT_decl_file : 1
DW_AT_decl_line : 1050
DW_AT_type : <9a9>
<2><974>: Abbrev Number: 22 (DW_TAG_lexical_block)
DW_AT_sibling : <98a>
<3><979>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : __cbtmp
DW_AT_decl_file : 1
DW_AT_decl_line : 986
DW_AT_type : <7d8>
<2><98a>: Abbrev Number: 23 (DW_TAG_lexical_block)
<3><98b>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : m1
DW_AT_decl_file : 1
DW_AT_decl_line : 1016
DW_AT_type : <7d8>
<3><996>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : m0
DW_AT_decl_file : 1
DW_AT_decl_line : 1016
DW_AT_type : <7d8>
<1><9a3>: Abbrev Number: 5 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <7f5>
<1><9a9>: Abbrev Number: 24 (DW_TAG_const_type)
DW_AT_type : <877>
<1><9ae>: Abbrev Number: 25 (DW_TAG_subprogram)
DW_AT_external : 1
DW_AT_name : __udivdi3
DW_AT_decl_file : 1
DW_AT_decl_line : 1117
DW_AT_prototyped : 1
DW_AT_type : <7f5>
DW_AT_low_pc : 0x805f640
DW_AT_high_pc : 0x805f7a2
DW_AT_frame_base : 1 byte block: 55 (DW_OP_reg5)
<2><9cc>: Abbrev Number: 26 (DW_TAG_formal_parameter)
DW_AT_name : n
DW_AT_decl_file : 1
DW_AT_decl_line : 1116
DW_AT_type : <7f5>
DW_AT_location : 0 (location list)
<2><9da>: Abbrev Number: 26 (DW_TAG_formal_parameter)
DW_AT_name : d
DW_AT_decl_file : 1
DW_AT_decl_line : 1116
DW_AT_type : <7f5>
DW_AT_location : 38 (location list)
<2><9e8>: Abbrev Number: 27 (DW_TAG_inlined_subroutine)
DW_AT_sibling : <a6f>
DW_AT_abstract_origin: <8ac>
DW_AT_low_pc : 0x805f65c
DW_AT_high_pc : 0x805f687
<3><9f9>: Abbrev Number: 28 (DW_TAG_formal_parameter)
DW_AT_abstract_origin: <8db>
<3><9fe>: Abbrev Number: 28 (DW_TAG_formal_parameter)
DW_AT_abstract_origin: <8d1>
<3><a03>: Abbrev Number: 28 (DW_TAG_formal_parameter)
DW_AT_abstract_origin: <8c7>
<3><a08>: Abbrev Number: 29 (DW_TAG_lexical_block)
DW_AT_ranges : 0
<4><a0d>: Abbrev Number: 30 (DW_TAG_variable)
DW_AT_abstract_origin: <8e6>
<4><a12>: Abbrev Number: 30 (DW_TAG_variable)
DW_AT_abstract_origin: <8f1>
<4><a17>: Abbrev Number: 30 (DW_TAG_variable)
DW_AT_abstract_origin: <8fc>
<4><a1c>: Abbrev Number: 31 (DW_TAG_variable)
DW_AT_abstract_origin: <907>
DW_AT_location : 93 (location list)
<4><a25>: Abbrev Number: 31 (DW_TAG_variable)
DW_AT_abstract_origin: <912>
DW_AT_location : 189 (location list)
<4><a2e>: Abbrev Number: 31 (DW_TAG_variable)
DW_AT_abstract_origin: <91d>
DW_AT_location : 287 (location list)
<4><a37>: Abbrev Number: 31 (DW_TAG_variable)
DW_AT_abstract_origin: <928>
DW_AT_location : 351 (location list)
<4><a40>: Abbrev Number: 30 (DW_TAG_variable)
DW_AT_abstract_origin: <933>
<4><a45>: Abbrev Number: 31 (DW_TAG_variable)
DW_AT_abstract_origin: <93e>
DW_AT_location : 406 (location list)
<4><a4e>: Abbrev Number: 31 (DW_TAG_variable)
DW_AT_abstract_origin: <949>
DW_AT_location : 469 (location list)
<4><a57>: Abbrev Number: 30 (DW_TAG_variable)
DW_AT_abstract_origin: <954>
<4><a5c>: Abbrev Number: 31 (DW_TAG_variable)
DW_AT_abstract_origin: <95e>
DW_AT_location : 532 (location list)
<4><a65>: Abbrev Number: 32 (DW_TAG_variable)
DW_AT_abstract_origin: <969>
DW_AT_location : 2 byte block: 75 60 (DW_OP_breg5: -32)
<2><a6f>: Abbrev Number: 33 (DW_TAG_lexical_block)
DW_AT_sibling : <a86>
DW_AT_low_pc : 0x805f69d
DW_AT_high_pc : 0x805f6a0
<3><a7c>: Abbrev Number: 31 (DW_TAG_variable)
DW_AT_abstract_origin: <979>
DW_AT_location : 573 (location list)
<2><a86>: Abbrev Number: 29 (DW_TAG_lexical_block)
DW_AT_ranges : 56
<3><a8b>: Abbrev Number: 31 (DW_TAG_variable)
DW_AT_abstract_origin: <98b>
DW_AT_location : 603 (location list)
<3><a94>: Abbrev Number: 31 (DW_TAG_variable)
DW_AT_abstract_origin: <996>
DW_AT_location : 633 (location list)
Compilation Unit @ aa0:
Length: 1813
Version: 2
Abbrev Offset: 759
Pointer Size: 4
<0><aab>: Abbrev Number: 1 (DW_TAG_compile_unit)
DW_AT_stmt_list : 461
DW_AT_high_pc : 0x805f956
DW_AT_low_pc : 0x805f7b0
DW_AT_producer : GNU C 4.0.0 20050129 (experimental)
DW_AT_language : 1 (ANSI C)
DW_AT_name : /home/andy/g95.build/linux/gcc.linux/gcc/libgcc2.c

<1><b10>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : int
DW_AT_byte_size : 4
DW_AT_encoding : 5 (signed)
<1><b17>: Abbrev Number: 3 (DW_TAG_base_type)
DW_AT_name : (indirect string, offset: 0x37): unsigned int
DW_AT_byte_size : 4
DW_AT_encoding : 7 (unsigned)
<1><b1e>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : long int
DW_AT_byte_size : 4
DW_AT_encoding : 5 (signed)
<1><b2a>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : char
DW_AT_byte_size : 1
DW_AT_encoding : 6 (signed char)
<1><b32>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : unsigned char
DW_AT_byte_size : 1
DW_AT_encoding : 8 (unsigned char)
<1><b43>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : short unsigned int
DW_AT_byte_size : 2
DW_AT_encoding : 7 (unsigned)
<1><b59>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : long unsigned int
DW_AT_byte_size : 4
DW_AT_encoding : 7 (unsigned)
<1><b6e>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : long long unsigned int
DW_AT_byte_size : 8
DW_AT_encoding : 7 (unsigned)
<1><b88>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : __quad_t
DW_AT_decl_file : 4
DW_AT_decl_line : 38
DW_AT_type : <b98>
<1><b98>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : long long int
DW_AT_byte_size : 8
DW_AT_encoding : 5 (signed)
<1><ba9>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : signed char
DW_AT_byte_size : 1
DW_AT_encoding : 6 (signed char)
<1><bb8>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : short int
DW_AT_byte_size : 2
DW_AT_encoding : 5 (signed)
<1><bc5>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : __off_t
DW_AT_decl_file : 4
DW_AT_decl_line : 67
DW_AT_type : <b1e>
<1><bd4>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : __loff_t
DW_AT_decl_file : 4
DW_AT_decl_line : 68
DW_AT_type : <b88>
<1><be4>: Abbrev Number: 3 (DW_TAG_base_type)
DW_AT_name : (indirect string, offset: 0x37): unsigned int
DW_AT_byte_size : 4
DW_AT_encoding : 7 (unsigned)
<1><beb>: Abbrev Number: 5 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <b2a>
<1><bf1>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : __off64_t
DW_AT_decl_file : 4
DW_AT_decl_line : 128
DW_AT_type : <bd4>
<1><c02>: Abbrev Number: 6 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
<1><c04>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : FILE
DW_AT_decl_file : 2
DW_AT_decl_line : 45
DW_AT_type : <c10>
<1><c10>: Abbrev Number: 7 (DW_TAG_structure_type)
DW_AT_sibling : <e56>
DW_AT_name : (indirect string, offset: 0x2e): _IO_FILE
DW_AT_byte_size : 148
DW_AT_decl_file : 2
DW_AT_decl_line : 45
<2><c1c>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _flags
DW_AT_decl_file : 3
DW_AT_decl_line : 262
DW_AT_type : <b10>
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst:
0)
<2><c2e>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_read_ptr
DW_AT_decl_file : 3
DW_AT_decl_line : 267
DW_AT_type : <beb>
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst:
4)
<2><c46>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_read_end
DW_AT_decl_file : 3
DW_AT_decl_line : 268
DW_AT_type : <beb>
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst:
8)
<2><c5e>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_read_base
DW_AT_decl_file : 3
DW_AT_decl_line : 269
DW_AT_type : <beb>
DW_AT_data_member_location: 2 byte block: 23 c (DW_OP_plus_uconst:
12)
<2><c77>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_write_base
DW_AT_decl_file : 3
DW_AT_decl_line : 270
DW_AT_type : <beb>
DW_AT_data_member_location: 2 byte block: 23 10 (DW_OP_plus_uconst:
16)
<2><c91>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_write_ptr
DW_AT_decl_file : 3
DW_AT_decl_line : 271
DW_AT_type : <beb>
DW_AT_data_member_location: 2 byte block: 23 14 (DW_OP_plus_uconst:
20)
<2><caa>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_write_end
DW_AT_decl_file : 3
DW_AT_decl_line : 272
DW_AT_type : <beb>
DW_AT_data_member_location: 2 byte block: 23 18 (DW_OP_plus_uconst:
24)
<2><cc3>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_buf_base
DW_AT_decl_file : 3
DW_AT_decl_line : 273
DW_AT_type : <beb>
DW_AT_data_member_location: 2 byte block: 23 1c (DW_OP_plus_uconst:
28)
<2><cdb>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_buf_end
DW_AT_decl_file : 3
DW_AT_decl_line : 274
DW_AT_type : <beb>
DW_AT_data_member_location: 2 byte block: 23 20 (DW_OP_plus_uconst:
32)
<2><cf2>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_save_base
DW_AT_decl_file : 3
DW_AT_decl_line : 276
DW_AT_type : <beb>
DW_AT_data_member_location: 2 byte block: 23 24 (DW_OP_plus_uconst:
36)
<2><d0b>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_backup_base
DW_AT_decl_file : 3
DW_AT_decl_line : 277
DW_AT_type : <beb>
DW_AT_data_member_location: 2 byte block: 23 28 (DW_OP_plus_uconst:
40)
<2><d26>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _IO_save_end
DW_AT_decl_file : 3
DW_AT_decl_line : 278
DW_AT_type : <beb>
DW_AT_data_member_location: 2 byte block: 23 2c (DW_OP_plus_uconst:
44)
<2><d3e>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _markers
DW_AT_decl_file : 3
DW_AT_decl_line : 280
DW_AT_type : <ea7>
DW_AT_data_member_location: 2 byte block: 23 30 (DW_OP_plus_uconst:
48)
<2><d52>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _chain
DW_AT_decl_file : 3
DW_AT_decl_line : 282
DW_AT_type : <ead>
DW_AT_data_member_location: 2 byte block: 23 34 (DW_OP_plus_uconst:
52)
<2><d64>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _fileno
DW_AT_decl_file : 3
DW_AT_decl_line : 284
DW_AT_type : <b10>
DW_AT_data_member_location: 2 byte block: 23 38 (DW_OP_plus_uconst:
56)
<2><d77>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _blksize
DW_AT_decl_file : 3
DW_AT_decl_line : 285
DW_AT_type : <b10>
DW_AT_data_member_location: 2 byte block: 23 3c (DW_OP_plus_uconst:
60)
<2><d8b>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _old_offset
DW_AT_decl_file : 3
DW_AT_decl_line : 286
DW_AT_type : <bc5>
DW_AT_data_member_location: 2 byte block: 23 40 (DW_OP_plus_uconst:
64)
<2><da2>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _cur_column
DW_AT_decl_file : 3
DW_AT_decl_line : 290
DW_AT_type : <b43>
DW_AT_data_member_location: 2 byte block: 23 44 (DW_OP_plus_uconst:
68)
<2><db9>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _vtable_offset
DW_AT_decl_file : 3
DW_AT_decl_line : 291
DW_AT_type : <ba9>
DW_AT_data_member_location: 2 byte block: 23 46 (DW_OP_plus_uconst:
70)
<2><dd3>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _shortbuf
DW_AT_decl_file : 3
DW_AT_decl_line : 292
DW_AT_type : <eb3>
DW_AT_data_member_location: 2 byte block: 23 47 (DW_OP_plus_uconst:
71)
<2><de8>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _lock
DW_AT_decl_file : 3
DW_AT_decl_line : 296
DW_AT_type : <ec3>
DW_AT_data_member_location: 2 byte block: 23 48 (DW_OP_plus_uconst:
72)
<2><df9>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _offset
DW_AT_decl_file : 3
DW_AT_decl_line : 305
DW_AT_type : <bf1>
DW_AT_data_member_location: 2 byte block: 23 4c (DW_OP_plus_uconst:
76)
<2><e0c>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : __pad1
DW_AT_decl_file : 3
DW_AT_decl_line : 311
DW_AT_type : <c02>
DW_AT_data_member_location: 2 byte block: 23 54 (DW_OP_plus_uconst:
84)
<2><e1e>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : __pad2
DW_AT_decl_file : 3
DW_AT_decl_line : 312
DW_AT_type : <c02>
DW_AT_data_member_location: 2 byte block: 23 58 (DW_OP_plus_uconst:
88)
<2><e30>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _mode
DW_AT_decl_file : 3
DW_AT_decl_line : 314
DW_AT_type : <b10>
DW_AT_data_member_location: 2 byte block: 23 5c (DW_OP_plus_uconst:
92)
<2><e41>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : _unused2
DW_AT_decl_file : 3
DW_AT_decl_line : 316
DW_AT_type : <ec9>
DW_AT_data_member_location: 2 byte block: 23 60 (DW_OP_plus_uconst:
96)
<1><e56>: Abbrev Number: 9 (DW_TAG_typedef)
DW_AT_name : _IO_lock_t
DW_AT_decl_file : 3
DW_AT_decl_line : 170
<1><e64>: Abbrev Number: 10 (DW_TAG_structure_type)
DW_AT_sibling : <ea7>
DW_AT_name : _IO_marker
DW_AT_byte_size : 12
DW_AT_decl_file : 3
DW_AT_decl_line : 176
<2><e77>: Abbrev Number: 11 (DW_TAG_member)
DW_AT_name : _next
DW_AT_decl_file : 3
DW_AT_decl_line : 177
DW_AT_type : <ea7>
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst:
0)
<2><e87>: Abbrev Number: 11 (DW_TAG_member)
DW_AT_name : _sbuf
DW_AT_decl_file : 3
DW_AT_decl_line : 178
DW_AT_type : <ead>
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst:
4)
<2><e97>: Abbrev Number: 11 (DW_TAG_member)
DW_AT_name : _pos
DW_AT_decl_file : 3
DW_AT_decl_line : 182
DW_AT_type : <b10>
DW_AT_data_member_location: 2 byte block: 23 8 (DW_OP_plus_uconst:
8)
<1><ea7>: Abbrev Number: 5 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <e64>
<1><ead>: Abbrev Number: 5 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <c10>
<1><eb3>: Abbrev Number: 12 (DW_TAG_array_type)
DW_AT_sibling : <ec3>
DW_AT_type : <b2a>
<2><ebc>: Abbrev Number: 13 (DW_TAG_subrange_type)
DW_AT_type : <be4>
DW_AT_upper_bound : 0
<1><ec3>: Abbrev Number: 5 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <e56>
<1><ec9>: Abbrev Number: 12 (DW_TAG_array_type)
DW_AT_sibling : <ed9>
DW_AT_type : <b2a>
<2><ed2>: Abbrev Number: 13 (DW_TAG_subrange_type)
DW_AT_type : <be4>
DW_AT_upper_bound : 51
<1><ed9>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : SItype
DW_AT_decl_file : 5
DW_AT_decl_line : 77
DW_AT_type : <b10>
<1><ee7>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : USItype
DW_AT_decl_file : 5
DW_AT_decl_line : 78
DW_AT_type : <b17>
<1><ef6>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : DItype
DW_AT_decl_file : 5
DW_AT_decl_line : 81
DW_AT_type : <b98>
<1><f04>: Abbrev Number: 4 (DW_TAG_typedef)
DW_AT_name : UDItype
DW_AT_decl_file : 5
DW_AT_decl_line : 82
DW_AT_type : <b6e>
<1><f13>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : float
DW_AT_byte_size : 4
DW_AT_encoding : 4 (float)
<1><f1c>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : double
DW_AT_byte_size : 8
DW_AT_encoding : 4 (float)
<1><f26>: Abbrev Number: 2 (DW_TAG_base_type)
DW_AT_name : long double
DW_AT_byte_size : 12
DW_AT_encoding : 4 (float)
<1><f35>: Abbrev Number: 14 (DW_TAG_structure_type)
DW_AT_sibling : <f67>
DW_AT_name : DWstruct
DW_AT_byte_size : 8
DW_AT_decl_file : 5
DW_AT_decl_line : 329
<2><f47>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : low
DW_AT_decl_file : 5
DW_AT_decl_line : 329
DW_AT_type : <ed9>
DW_AT_data_member_location: 2 byte block: 23 0 (DW_OP_plus_uconst:
0)
<2><f56>: Abbrev Number: 8 (DW_TAG_member)
DW_AT_name : high
DW_AT_decl_file : 5
DW_AT_decl_line : 329
DW_AT_type : <ed9>
DW_AT_data_member_location: 2 byte block: 23 4 (DW_OP_plus_uconst:
4)
<1><f67>: Abbrev Number: 15 (DW_TAG_union_type)
DW_AT_sibling : <f86>
DW_AT_byte_size : 8
DW_AT_decl_file : 5
DW_AT_decl_line : 340
<2><f70>: Abbrev Number: 16 (DW_TAG_member)
DW_AT_name : s
DW_AT_decl_file : 5
DW_AT_decl_line : 338
DW_AT_type : <f35>
<2><f7a>: Abbrev Number: 16 (DW_TAG_member)
DW_AT_name : ll
DW_AT_decl_file : 5
DW_AT_decl_line : 339
DW_AT_type : <ef6>
<1><f86>: Abbrev Number: 17 (DW_TAG_typedef)
DW_AT_name : DWunion
DW_AT_decl_file : 5
DW_AT_decl_line : 340
DW_AT_type : <f67>
<1><f96>: Abbrev Number: 18 (DW_TAG_variable)
DW_AT_name : stdin
DW_AT_decl_file : 2
DW_AT_decl_line : 133
DW_AT_type : <fa5>
DW_AT_external : 1
DW_AT_declaration : 1
<1><fa5>: Abbrev Number: 5 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <c04>
<1><fab>: Abbrev Number: 18 (DW_TAG_variable)
DW_AT_name : stdout
DW_AT_decl_file : 2
DW_AT_decl_line : 134
DW_AT_type : <fa5>
DW_AT_external : 1
DW_AT_declaration : 1
<1><fbb>: Abbrev Number: 19 (DW_TAG_subprogram)
DW_AT_sibling : <10b2>
DW_AT_name : __udivmoddi4
DW_AT_decl_file : 1
DW_AT_decl_line : 843
DW_AT_prototyped : 1
DW_AT_type : <f04>
DW_AT_inline : 3 (declared as inline and inlined)
<2><fd6>: Abbrev Number: 20 (DW_TAG_formal_parameter)
DW_AT_name : n
DW_AT_decl_file : 1
DW_AT_decl_line : 842
DW_AT_type : <f04>
<2><fe0>: Abbrev Number: 20 (DW_TAG_formal_parameter)
DW_AT_name : d
DW_AT_decl_file : 1
DW_AT_decl_line : 842
DW_AT_type : <f04>
<2><fea>: Abbrev Number: 20 (DW_TAG_formal_parameter)
DW_AT_name : rp
DW_AT_decl_file : 1
DW_AT_decl_line : 842
DW_AT_type : <10b2>
<2><ff5>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : nn
DW_AT_decl_file : 1
DW_AT_decl_line : 844
DW_AT_type : <10b8>
<2><1000>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : dd
DW_AT_decl_file : 1
DW_AT_decl_line : 845
DW_AT_type : <10b8>
<2><100b>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : rr
DW_AT_decl_file : 1
DW_AT_decl_line : 846
DW_AT_type : <f86>
<2><1016>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : d0
DW_AT_decl_file : 1
DW_AT_decl_line : 847
DW_AT_type : <ee7>
<2><1021>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : d1
DW_AT_decl_file : 1
DW_AT_decl_line : 847
DW_AT_type : <ee7>
<2><102c>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : n0
DW_AT_decl_file : 1
DW_AT_decl_line : 847
DW_AT_type : <ee7>
<2><1037>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : n1
DW_AT_decl_file : 1
DW_AT_decl_line : 847
DW_AT_type : <ee7>
<2><1042>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : n2
DW_AT_decl_file : 1
DW_AT_decl_line : 847
DW_AT_type : <ee7>
<2><104d>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : q0
DW_AT_decl_file : 1
DW_AT_decl_line : 848
DW_AT_type : <ee7>
<2><1058>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : q1
DW_AT_decl_file : 1
DW_AT_decl_line : 848
DW_AT_type : <ee7>
<2><1063>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : b
DW_AT_decl_file : 1
DW_AT_decl_line : 849
DW_AT_type : <ee7>
<2><106d>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : bm
DW_AT_decl_file : 1
DW_AT_decl_line : 849
DW_AT_type : <ee7>
<2><1078>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : ww
DW_AT_decl_file : 1
DW_AT_decl_line : 1050
DW_AT_type : <10b8>
<2><1083>: Abbrev Number: 22 (DW_TAG_lexical_block)
DW_AT_sibling : <1099>
<3><1088>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : __cbtmp
DW_AT_decl_file : 1
DW_AT_decl_line : 986
DW_AT_type : <ee7>
<2><1099>: Abbrev Number: 23 (DW_TAG_lexical_block)
<3><109a>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : m1
DW_AT_decl_file : 1
DW_AT_decl_line : 1016
DW_AT_type : <ee7>
<3><10a5>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : m0
DW_AT_decl_file : 1
DW_AT_decl_line : 1016
DW_AT_type : <ee7>
<1><10b2>: Abbrev Number: 5 (DW_TAG_pointer_type)
DW_AT_byte_size : 4
DW_AT_type : <f04>
<1><10b8>: Abbrev Number: 24 (DW_TAG_const_type)
DW_AT_type : <f86>
<1><10bd>: Abbrev Number: 25 (DW_TAG_subprogram)
DW_AT_external : 1
DW_AT_name : __umoddi3
DW_AT_decl_file : 1
DW_AT_decl_line : 1105
DW_AT_prototyped : 1
DW_AT_type : <f04>
DW_AT_low_pc : 0x805f7b0
DW_AT_high_pc : 0x805f956
DW_AT_frame_base : 1 byte block: 55 (DW_OP_reg5)
<2><10db>: Abbrev Number: 26 (DW_TAG_formal_parameter)
DW_AT_name : u
DW_AT_decl_file : 1
DW_AT_decl_line : 1104
DW_AT_type : <f04>
DW_AT_location : 652 (location list)
<2><10e9>: Abbrev Number: 26 (DW_TAG_formal_parameter)
DW_AT_name : v
DW_AT_decl_file : 1
DW_AT_decl_line : 1104
DW_AT_type : <f04>
DW_AT_location : 928 (location list)
<2><10f7>: Abbrev Number: 21 (DW_TAG_variable)
DW_AT_name : w
DW_AT_decl_file : 1
DW_AT_decl_line : 1106
DW_AT_type : <f04>
<2><1101>: Abbrev Number: 27 (DW_TAG_inlined_subroutine)
DW_AT_sibling : <1188>
DW_AT_abstract_origin: <fbb>
DW_AT_low_pc : 0x805f7c4
DW_AT_high_pc : 0x805f7fc
<3><1112>: Abbrev Number: 28 (DW_TAG_formal_parameter)
DW_AT_abstract_origin: <fea>
<3><1117>: Abbrev Number: 28 (DW_TAG_formal_parameter)
DW_AT_abstract_origin: <fe0>
<3><111c>: Abbrev Number: 28 (DW_TAG_formal_parameter)
DW_AT_abstract_origin: <fd6>
<3><1121>: Abbrev Number: 29 (DW_TAG_lexical_block)
DW_AT_ranges : 80
<4><1126>: Abbrev Number: 30 (DW_TAG_variable)
DW_AT_abstract_origin: <ff5>
<4><112b>: Abbrev Number: 30 (DW_TAG_variable)
DW_AT_abstract_origin: <1000>
<4><1130>: Abbrev Number: 31 (DW_TAG_variable)
DW_AT_abstract_origin: <100b>
DW_AT_location : 2 byte block: 75 48 (DW_OP_breg5: -56)
<4><1138>: Abbrev Number: 32 (DW_TAG_variable)
DW_AT_abstract_origin: <1016>
DW_AT_location : 1208 (location list)
<4><1141>: Abbrev Number: 32 (DW_TAG_variable)
DW_AT_abstract_origin: <1021>
DW_AT_location : 1271 (location list)
<4><114a>: Abbrev Number: 32 (DW_TAG_variable)
DW_AT_abstract_origin: <102c>
DW_AT_location : 1303 (location list)
<4><1153>: Abbrev Number: 32 (DW_TAG_variable)
DW_AT_abstract_origin: <1037>
DW_AT_location : 1368 (location list)
<4><115c>: Abbrev Number: 30 (DW_TAG_variable)
DW_AT_abstract_origin: <1042>
<4><1161>: Abbrev Number: 32 (DW_TAG_variable)
DW_AT_abstract_origin: <104d>
DW_AT_location : 1422 (location list)
<4><116a>: Abbrev Number: 32 (DW_TAG_variable)
DW_AT_abstract_origin: <1058>
DW_AT_location : 1485 (location list)
<4><1173>: Abbrev Number: 30 (DW_TAG_variable)
DW_AT_abstract_origin: <1063>
<4><1178>: Abbrev Number: 32 (DW_TAG_variable)
DW_AT_abstract_origin: <106d>
DW_AT_location : 1504 (location list)
<4><1181>: Abbrev Number: 30 (DW_TAG_variable)
DW_AT_abstract_origin: <1078>
<2><1188>: Abbrev Number: 33 (DW_TAG_lexical_block)
DW_AT_sibling : <119f>
DW_AT_low_pc : 0x805f830
DW_AT_high_pc : 0x805f834
<3><1195>: Abbrev Number: 32 (DW_TAG_variable)
DW_AT_abstract_origin: <1088>
DW_AT_location : 1536 (location list)
<2><119f>: Abbrev Number: 29 (DW_TAG_lexical_block)
DW_AT_ranges : 128
<3><11a4>: Abbrev Number: 32 (DW_TAG_variable)
DW_AT_abstract_origin: <109a>
DW_AT_location : 1566 (location list)
<3><11ad>: Abbrev Number: 32 (DW_TAG_variable)
DW_AT_abstract_origin: <10a5>
DW_AT_location : 1607 (location list)

Jim Parker

-----Original Message-----
From: Wu Zhou [mailto:woodzltc@cn.ibm.com]
Sent: Wednesday, July 06, 2005 3:18 AM
To: Parker James E Contr AFRL/HEDR
Cc: 'gdb@sources.redhat.com'
Subject: Re: gdb and Fortran90 arrays

On Fri, 1 Jul 2005, Parker James E Contr AFRL/HEDR wrote:

> Hello,
> I was wondering if anyone could help me decipher the output from gdb
> when debugging Fortran90 code. Since gdb doesn't currently support
> Fortran90, it defaults to a language format called "minimal", which is
> fine for most uses, but for arrays the output is cryptic for me.

Hi Parker,

I guess that you are not using g77, because g77 don't recognize this kind of
array definition.

I also assume that you are not using gfortran. Because gdb works ok with
gfortran on this kind of array definition on my Fedora Core 4.

So would you please tell me what your compiler is, ifc, g95 or any others?
If you could give me the output of "readelf -wi yourcase", that would be of
great help. Maybe I could code a patch to make gdb recognize your compiler.

>
> Example
> define an array
>
> real(KIND(1.0D0)), dimension(6)::x
>
> If I wanted to examine x(2), I normally (fortran 77) would use
> (gdb) p x(2)
>
> But under the minimal language setting, gdb interprets parenthesis as a
> function call--that of course doesn't exist--and therefore gdb complains
> with an error. I tried using [ ] to replace the parentheses, but gdb
> correctly replies that operator [] is undefined.
>
> The best result I have is at a gdb prompt type
> (gdb) p x
>
> And you get a list that contains an offset, ecode, base and info. Can
> anyone tell me what these things are? Ecode seems to represent the size
of
> each element in the array, but that's just a guess. The rest is some sort
> of memory pointer, but I can't decipher it.

I am more convinced that you are using a different compiler than g77 and
gfortran. It seems to me that your compiler outputs some weird information
gdb can't interpret. Maybe it is your compiler that need to be changed.

Just my guess anyway. The debuginfo is very helpful to confirm or deny
this.

- Wu Zhou