* 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:31 gdb and Fortran90 arrays 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-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-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-07 0:04 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-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-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: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-01 21:31 gdb and Fortran90 arrays Parker James E Contr AFRL/HEDR
2005-07-06 10:00 ` Wu Zhou
-- strict thread matches above, loose matches on Subject: below --
2005-07-07 0:04 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
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).