public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
* RE: gdb and Fortran90 arrays
@ 2005-07-07  0:04 Parker James E Contr AFRL/HEDR
  2005-07-09  3:29 ` Wu Zhou
  0 siblings, 1 reply; 11+ messages in thread
From: Parker James E Contr AFRL/HEDR @ 2005-07-07  0:04 UTC (permalink / raw)
  To: 'Wu Zhou'; +Cc: 'gdb@sources.redhat.com'

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><b>: 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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: gdb and Fortran90 arrays
  2005-07-07  0:04 gdb and Fortran90 arrays Parker James E Contr AFRL/HEDR
@ 2005-07-09  3:29 ` Wu Zhou
  2005-07-09 18:18   ` Daniel Berlin
  0 siblings, 1 reply; 11+ messages in thread
From: Wu Zhou @ 2005-07-09  3:29 UTC (permalink / raw)
  To: Parker James E Contr AFRL/HEDR; +Cc: 'gdb@sources.redhat.com'


Hi Parker,

I had a fast look at you dwarf output.  It doesn't conform to the DWARF 
standard, (which is the most commonly used debugging standard in the Linux 
world.) especially in the debuginfo on the array "guess" and "z".  So it 
might better to post your question to g95 mail-list for a solution.  
However I will take some more time to see why GDB didn't think your code 
are written in fortran.  Maybe it is related the following text: 

 <0><b>: 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!)

I need to see how GDB guess the language of the binary.


 On Wed, 6 Jul 2005, Parker James E Contr AFRL/HEDR wrote:

> 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><b>: 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
> 
> 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: gdb and Fortran90 arrays
  2005-07-09  3:29 ` Wu Zhou
@ 2005-07-09 18:18   ` Daniel Berlin
  2005-07-11  1:24     ` Wu Zhou
  0 siblings, 1 reply; 11+ messages in thread
From: Daniel Berlin @ 2005-07-09 18:18 UTC (permalink / raw)
  To: Wu Zhou; +Cc: Parker James E Contr AFRL/HEDR, 'gdb@sources.redhat.com'

On Fri, 2005-07-08 at 01:02 +0800, Wu Zhou wrote:
> Hi Parker,
> 
> I had a fast look at you dwarf output.  It doesn't conform to the DWARF 
> standard, (which is the most commonly used debugging standard in the Linux 
> world.) especially in the debuginfo on the array "guess" and "z".  So it 
> might better to post your question to g95 mail-list for a solution.  
> However I will take some more time to see why GDB didn't think your code 
> are written in fortran.  Maybe it is related the following text: 
> 
>  <0><b>: 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!)
> 
> I need to see how GDB guess the language of the binary.

It should use DW_AT_language.

If you look, his binary claims it is ANSI C.

  <0><b>: 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  



^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: gdb and Fortran90 arrays
  2005-07-09 18:18   ` Daniel Berlin
@ 2005-07-11  1:24     ` Wu Zhou
  0 siblings, 0 replies; 11+ messages in thread
From: Wu Zhou @ 2005-07-11  1:24 UTC (permalink / raw)
  To: Daniel Berlin
  Cc: Parker James E Contr AFRL/HEDR, 'gdb@sources.redhat.com'

On Sat, 9 Jul 2005, Daniel Berlin wrote:

> On Fri, 2005-07-08 at 01:02 +0800, Wu Zhou wrote:
> > Hi Parker,
> > 
> > I had a fast look at you dwarf output.  It doesn't conform to the DWARF 
> > standard, (which is the most commonly used debugging standard in the Linux 
> > world.) especially in the debuginfo on the array "guess" and "z".  So it 
> > might better to post your question to g95 mail-list for a solution.  
> > However I will take some more time to see why GDB didn't think your code 
> > are written in fortran.  Maybe it is related the following text: 
> > 
> >  <0><b>: 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!)
> > 
> > I need to see how GDB guess the language of the binary.
> 
> It should use DW_AT_language.
> 
> If you look, his binary claims it is ANSI C.

Yes.  It is DW_AT_language.  I didn't look that far. :-)

Thanks for pointing this out.

To Parker: both your questions are due to g95 itself.  You need to contact 
g95 developer to resolve this.

Regards
- Wu Zhou

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: gdb and Fortran90 arrays
  2005-07-01 21:31 Parker James E Contr AFRL/HEDR
@ 2005-07-06 10:00 ` Wu Zhou
  0 siblings, 0 replies; 11+ messages in thread
From: Wu Zhou @ 2005-07-06 10:00 UTC (permalink / raw)
  To: Parker James E Contr AFRL/HEDR
  Cc: 'Bloch, Jack', 'gdb@sources.redhat.com'

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

> Jack,
>   How do I use the offset and base information to determine what section of
> memory to look at?

The normal way for gdb to determine the memory address is to issue "p &x", 
but I doubt that if will work ok in this situation.  Anyway you could 
have a try.  And you also need to interpret the output yourself to 
Fortran's real type.  

- Wu Zhou

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: gdb and Fortran90 arrays
  2005-07-01 21:09 Parker James E Contr AFRL/HEDR
  2005-07-01 21:11 ` Daniel Jacobowitz
@ 2005-07-06  9:38 ` Wu Zhou
  1 sibling, 0 replies; 11+ messages in thread
From: Wu Zhou @ 2005-07-06  9:38 UTC (permalink / raw)
  To: Parker James E Contr AFRL/HEDR; +Cc: 'gdb@sources.redhat.com'

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: gdb and Fortran90 arrays
  2005-07-01 21:29 Parker James E Contr AFRL/HEDR
@ 2005-07-01 21:39 ` 'Daniel Jacobowitz'
  0 siblings, 0 replies; 11+ messages in thread
From: 'Daniel Jacobowitz' @ 2005-07-01 21:39 UTC (permalink / raw)
  To: Parker James E Contr AFRL/HEDR; +Cc: 'gdb@sources.redhat.com'

On Fri, Jul 01, 2005 at 04:29:13PM -0500, Parker James E Contr AFRL/HEDR wrote:
>  Yes,
>   If you mean attempt to 
> (gdb) set language fortran
> 
> gdb assumes you mean fortran77, and then complains that the array
> definitions are invalid -- doesn't like definitions that include Fortran90
> constructs like intent(in) 
> 
> But if you mean downloading the most current version of gdb from CVS, that I
> haven't tried.  Currently, I'm using version 6.1 dated 20040607, I didn't
> see that 6.2 or 6.3 improved the Fortran90 support.  Do you know of a fix
> that was implemented?

Sure.  I don't think much Fortran90 support was added, but general
Fortran array access was recently fixed to not be treated as a function
call.


-- 
Daniel Jacobowitz
CodeSourcery, LLC

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: gdb and Fortran90 arrays
@ 2005-07-01 21:31 Parker James E Contr AFRL/HEDR
  2005-07-06 10:00 ` Wu Zhou
  0 siblings, 1 reply; 11+ messages in thread
From: Parker James E Contr AFRL/HEDR @ 2005-07-01 21:31 UTC (permalink / raw)
  To: 'Bloch, Jack'; +Cc: 'gdb@sources.redhat.com'

Jack,
  How do I use the offset and base information to determine what section of
memory to look at?


Jim Parker
Research Physicist

General Dynamics
8355 Hawks Road
Building 1168
Brooks City-Base
San Antonio TX 78235
210 536 4083


-----Original Message-----
From: Bloch, Jack [mailto:jack.bloch@siemens.com] 
Sent: Friday, July 01, 2005 4:11 PM
To: Parker James E Contr AFRL/HEDR
Subject: RE: gdb and Fortran90 arrays

Use the x command to examine the memory  

-----Original Message-----
From: gdb-owner@sources.redhat.com [mailto:gdb-owner@sources.redhat.com] On
Behalf Of Parker James E Contr AFRL/HEDR
Sent: Friday, July 01, 2005 5:09 PM
To: 'gdb@sources.redhat.com'
Subject: gdb and Fortran90 arrays

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.

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.  

Jim Parker

^ permalink raw reply	[flat|nested] 11+ messages in thread

* RE: gdb and Fortran90 arrays
@ 2005-07-01 21:29 Parker James E Contr AFRL/HEDR
  2005-07-01 21:39 ` 'Daniel Jacobowitz'
  0 siblings, 1 reply; 11+ messages in thread
From: Parker James E Contr AFRL/HEDR @ 2005-07-01 21:29 UTC (permalink / raw)
  To: 'Daniel Jacobowitz'; +Cc: 'gdb@sources.redhat.com'

 Yes,
  If you mean attempt to 
(gdb) set language fortran

gdb assumes you mean fortran77, and then complains that the array
definitions are invalid -- doesn't like definitions that include Fortran90
constructs like intent(in) 

But if you mean downloading the most current version of gdb from CVS, that I
haven't tried.  Currently, I'm using version 6.1 dated 20040607, I didn't
see that 6.2 or 6.3 improved the Fortran90 support.  Do you know of a fix
that was implemented?


Jim Parker
Research Physicist

General Dynamics
8355 Hawks Road
Building 1168
Brooks City-Base
San Antonio TX 78235
210 536 4083


-----Original Message-----
From: Daniel Jacobowitz [mailto:drow@false.org] 
Sent: Friday, July 01, 2005 4:11 PM
To: Parker James E Contr AFRL/HEDR
Cc: 'gdb@sources.redhat.com'
Subject: Re: gdb and Fortran90 arrays

On Fri, Jul 01, 2005 at 04:09:04PM -0500, Parker James E Contr AFRL/HEDR
wrote:
>   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.

Have you tried using CVS, and explicitly setting the language to fortran?

> 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.

Probably depends on your compiler; you didn't say which?  They may be able
to tell you more.

--
Daniel Jacobowitz
CodeSourcery, LLC

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: gdb and Fortran90 arrays
  2005-07-01 21:09 Parker James E Contr AFRL/HEDR
@ 2005-07-01 21:11 ` Daniel Jacobowitz
  2005-07-06  9:38 ` Wu Zhou
  1 sibling, 0 replies; 11+ messages in thread
From: Daniel Jacobowitz @ 2005-07-01 21:11 UTC (permalink / raw)
  To: Parker James E Contr AFRL/HEDR; +Cc: 'gdb@sources.redhat.com'

On Fri, Jul 01, 2005 at 04:09:04PM -0500, Parker James E Contr AFRL/HEDR wrote:
>   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.

Have you tried using CVS, and explicitly setting the language to
fortran?

> 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.  

Probably depends on your compiler; you didn't say which?  They may be
able to tell you more.

-- 
Daniel Jacobowitz
CodeSourcery, LLC

^ permalink raw reply	[flat|nested] 11+ messages in thread

* gdb and Fortran90 arrays
@ 2005-07-01 21:09 Parker James E Contr AFRL/HEDR
  2005-07-01 21:11 ` Daniel Jacobowitz
  2005-07-06  9:38 ` Wu Zhou
  0 siblings, 2 replies; 11+ messages in thread
From: Parker James E Contr AFRL/HEDR @ 2005-07-01 21:09 UTC (permalink / raw)
  To: 'gdb@sources.redhat.com'

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.

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.  

Jim Parker

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2005-07-11  1:24 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-07-07  0:04 gdb and Fortran90 arrays Parker James E Contr AFRL/HEDR
2005-07-09  3:29 ` Wu Zhou
2005-07-09 18:18   ` Daniel Berlin
2005-07-11  1:24     ` Wu Zhou
  -- strict thread matches above, loose matches on Subject: below --
2005-07-01 21:31 Parker James E Contr AFRL/HEDR
2005-07-06 10:00 ` Wu Zhou
2005-07-01 21:29 Parker James E Contr AFRL/HEDR
2005-07-01 21:39 ` 'Daniel Jacobowitz'
2005-07-01 21:09 Parker James E Contr AFRL/HEDR
2005-07-01 21:11 ` Daniel Jacobowitz
2005-07-06  9:38 ` Wu Zhou

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).