I'm trying to formulate a bug report for tools used to examine/ process debug output.
looking specifically at the _debug_frame.

for this source:

---
int testfunc(void)
{
        int i;
        i = 1;
        return i;
}

===

using -save-temps -dA -g -O0 -fverbose-asm (-gstrict-dwarf, on 4.5)

comparing the output of gcc-4-4 and trunk.

The main difference (and the area causing the tool to barf) is that the FDE on 4.5 has some extra information not present in 4.4

        .byte   0x4     # DW_CFA_advance_loc4
        .set L$set$6,LCFI3-LCFI1
        .long L$set$6
        .byte   0xc5    # DW_CFA_restore, column 0x5
        .byte   0xc     # DW_CFA_def_cfa
        .byte   0x4     # uleb128 0x4
        .byte   0x4     # uleb128 0x4


whilst, with the aid of the dwarf3 spec, I can see that this is syntactically correct (and confirm that the object file contains the correct output).
I can't (at the moment) determine if it's logically correct.
What is the purpose of the addition?
(complete .s files attached)

TIA,
Iain

        .section __DWARF,__debug_frame,regular,debug
Lsection__debug_frame:
        .section __DWARF,__debug_info,regular,debug
Lsection__debug_info:
        .section __DWARF,__debug_abbrev,regular,debug
Lsection__debug_abbrev:
        .section __DWARF,__debug_aranges,regular,debug
Lsection__debug_aranges:
        .section __DWARF,__debug_macinfo,regular,debug
Lsection__debug_macinfo:
        .section __DWARF,__debug_line,regular,debug
Lsection__debug_line:
        .section __DWARF,__debug_loc,regular,debug
Lsection__debug_loc:
        .section __DWARF,__debug_pubnames,regular,debug
Lsection__debug_pubnames:
        .section __DWARF,__debug_pubtypes,regular,debug
Lsection__debug_pubtypes:
        .section __DWARF,__debug_str,regular,debug
Lsection__debug_str:
        .section __DWARF,__debug_ranges,regular,debug
Lsection__debug_ranges:
# GNU C (GCC) version 4.4.1 20090516 (prerelease) [gcc-4_4-branch revision 
147621] (i686-apple-darwin9)
#       compiled by GNU C version 4.4.1 20090516 (prerelease) [gcc-4_4-branch 
revision 147621], GMP version 4.2.4, MPFR version 2.3.2.
# GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
# options passed:  -fpreprocessed simplistic.i -fPIC
# -feliminate-unused-debug-symbols -mmacosx-version-min=10.5.8
# -mtune=generic -g -O0 -fverbose-asm
# options enabled:  -fPIC -falign-loops -fargument-alias -fauto-inc-dec
# -fbranch-count-reg -fcommon -fearly-inlining
# -feliminate-unused-debug-symbols -feliminate-unused-debug-types
# -ffunction-cse -fgcse-lm -fident -finline-functions-called-once
# -fira-share-save-slots -fira-share-spill-slots -fivopts
# -fkeep-static-consts -fleading-underscore -fmerge-debug-strings
# -fmove-loop-invariants -fpeephole -freg-struct-return -fsched-interblock
# -fsched-spec -fsched-stalled-insns-dep -fsigned-zeros
# -fsplit-ivs-in-unroller -ftrapping-math -ftree-cselim -ftree-loop-im
# -ftree-loop-ivcanon -ftree-loop-optimize -ftree-parallelize-loops=
# -ftree-reassoc -ftree-scev-cprop -ftree-switch-conversion
# -ftree-vect-loop-version -funit-at-a-time -fvect-cost-model -fverbose-asm
# -fzero-initialized-in-bss -m128bit-long-double -m32 -m80387
# -maccumulate-outgoing-args -malign-stringops -mfancy-math-387
# -mfp-ret-in-387 -mfused-madd -mieee-fp -mmmx -mno-red-zone -mno-sse4
# -mpush-args -msahf -msse -msse2

        .section __DWARF,__debug_abbrev,regular,debug
Ldebug_abbrev0:
        .section __DWARF,__debug_info,regular,debug
Ldebug_info0:
        .section __DWARF,__debug_line,regular,debug
Ldebug_line0:
        .text
Ltext0:
# Compiler executable checksum: c0a59a01f5e2b209a6abb15a4aa91764

.globl _testfunc
_testfunc:
LFB0:
        # ../tests/simplistic.c:2
LM1:
        # basic block 2
        pushl   %ebp    #
LCFI0:
        movl    %esp, %ebp      #,
LCFI1:
        subl    $24, %esp       #,
LCFI2:
        # ../tests/simplistic.c:4
LM2:
        movl    $1, -12(%ebp)   #, i
        # ../tests/simplistic.c:5
LM3:
        movl    -12(%ebp), %eax # i, D.1573
        # ../tests/simplistic.c:6
LM4:
        leave
        ret
LFE0:
        .section __DWARF,__debug_frame,regular,debug
Lframe0:
        .set L$set$0,LECIE0-LSCIE0
        .long L$set$0   # Length of Common Information Entry
LSCIE0:
        .long   0xffffffff      # CIE Identifier Tag
        .byte   0x1     # CIE Version
        .ascii "\0"     # CIE Augmentation
        .byte   0x1     # uleb128 0x1; CIE Code Alignment Factor
        .byte   0x7c    # sleb128 -4; CIE Data Alignment Factor
        .byte   0x8     # CIE RA Column
        .byte   0xc     # DW_CFA_def_cfa
        .byte   0x4     # uleb128 0x4
        .byte   0x4     # uleb128 0x4
        .byte   0x11    # DW_CFA_offset_extended_sf
        .byte   0x8     # uleb128 0x8
        .byte   0x1     # sleb128 1
        .align 2
LECIE0:
LSFDE0:
        .set L$set$1,LEFDE0-LASFDE0
        .long L$set$1   # FDE Length
LASFDE0:
        .set L$set$2,Lframe0-Lsection__debug_frame
        .long L$set$2   # FDE CIE offset
        .long   LFB0    # FDE initial location
        .set L$set$3,LFE0-LFB0
        .long L$set$3   # FDE address range
        .byte   0x4     # DW_CFA_advance_loc4
        .set L$set$4,LCFI0-LFB0
        .long L$set$4
        .byte   0xe     # DW_CFA_def_cfa_offset
        .byte   0x8     # uleb128 0x8
        .byte   0x11    # DW_CFA_offset_extended_sf
        .byte   0x5     # uleb128 0x5
        .byte   0x2     # sleb128 2
        .byte   0x4     # DW_CFA_advance_loc4
        .set L$set$5,LCFI1-LCFI0
        .long L$set$5
        .byte   0xd     # DW_CFA_def_cfa_register
        .byte   0x5     # uleb128 0x5
        .align 2
LEFDE0:
        .text
Letext0:
        .section __DWARF,__debug_loc,regular,debug
Ldebug_loc0:
LLST0:
        .set L$set$6,LFB0-Ltext0
        .long L$set$6   # Location list begin address (*LLST0)
        .set L$set$7,LCFI0-Ltext0
        .long L$set$7   # Location list end address (*LLST0)
        .word   0x2     # Location expression size
        .byte   0x74    # DW_OP_breg4
        .byte   0x4     # sleb128 4
        .set L$set$8,LCFI0-Ltext0
        .long L$set$8   # Location list begin address (*LLST0)
        .set L$set$9,LCFI1-Ltext0
        .long L$set$9   # Location list end address (*LLST0)
        .word   0x2     # Location expression size
        .byte   0x74    # DW_OP_breg4
        .byte   0x8     # sleb128 8
        .set L$set$10,LCFI1-Ltext0
        .long L$set$10  # Location list begin address (*LLST0)
        .set L$set$11,LFE0-Ltext0
        .long L$set$11  # Location list end address (*LLST0)
        .word   0x2     # Location expression size
        .byte   0x75    # DW_OP_breg5
        .byte   0x8     # sleb128 8
        .long   0x0     # Location list terminator begin (*LLST0)
        .long   0x0     # Location list terminator end (*LLST0)
        .section __DWARF,__debug_info,regular,debug
        .long   0xca    # Length of Compilation Unit Info
        .word   0x2     # DWARF version number
        .set L$set$12,Ldebug_abbrev0-Lsection__debug_abbrev
        .long L$set$12  # Offset Into Abbrev. Section
        .byte   0x4     # Pointer Size (in bytes)
        .byte   0x1     # uleb128 0x1; (DIE (0xb) DW_TAG_compile_unit)
        .ascii "GNU C 4.4.1 20090516 (prerelease) [gcc-4_4-branch revision 
147621]\0"   # DW_AT_producer
        .byte   0x1     # DW_AT_language
        .ascii "../tests/simplistic.c\0"        # DW_AT_name
        .ascii "/Volumes/ScratchCS/gcc-4-4-bra-build\0" # DW_AT_comp_dir
        .long   Ltext0  # DW_AT_low_pc
        .long   Letext0 # DW_AT_high_pc
        .set L$set$13,Ldebug_line0-Lsection__debug_line
        .long L$set$13  # DW_AT_stmt_list
        .byte   0x2     # uleb128 0x2; (DIE (0x97) DW_TAG_subprogram)
        .byte   0x1     # DW_AT_external
        .ascii "testfunc\0"     # DW_AT_name
        .byte   0x1     # DW_AT_decl_file (../tests/simplistic.c)
        .byte   0x1     # DW_AT_decl_line
        .byte   0x1     # DW_AT_prototyped
        .long   0xc6    # DW_AT_type
        .long   LFB0    # DW_AT_low_pc
        .long   LFE0    # DW_AT_high_pc
        .set L$set$14,LLST0-Lsection__debug_loc
        .long L$set$14  # DW_AT_frame_base
        .long   0xc6    # DW_AT_sibling
        .byte   0x3     # uleb128 0x3; (DIE (0xb9) DW_TAG_variable)
        .ascii "i\0"    # DW_AT_name
        .byte   0x1     # DW_AT_decl_file (../tests/simplistic.c)
        .byte   0x3     # DW_AT_decl_line
        .long   0xc6    # DW_AT_type
        .byte   0x2     # DW_AT_location
        .byte   0x91    # DW_OP_fbreg
        .byte   0x6c    # sleb128 -20
        .byte   0x0     # end of children of DIE 0x97
        .byte   0x4     # uleb128 0x4; (DIE (0xc6) DW_TAG_base_type)
        .byte   0x4     # DW_AT_byte_size
        .byte   0x5     # DW_AT_encoding
        .ascii "int\0"  # DW_AT_name
        .byte   0x0     # end of children of DIE 0xb
        .section __DWARF,__debug_abbrev,regular,debug
        .byte   0x1     # uleb128 0x1; (abbrev code)
        .byte   0x11    # uleb128 0x11; (TAG: DW_TAG_compile_unit)
        .byte   0x1     # DW_children_yes
        .byte   0x25    # uleb128 0x25; (DW_AT_producer)
        .byte   0x8     # uleb128 0x8; (DW_FORM_string)
        .byte   0x13    # uleb128 0x13; (DW_AT_language)
        .byte   0xb     # uleb128 0xb; (DW_FORM_data1)
        .byte   0x3     # uleb128 0x3; (DW_AT_name)
        .byte   0x8     # uleb128 0x8; (DW_FORM_string)
        .byte   0x1b    # uleb128 0x1b; (DW_AT_comp_dir)
        .byte   0x8     # uleb128 0x8; (DW_FORM_string)
        .byte   0x11    # uleb128 0x11; (DW_AT_low_pc)
        .byte   0x1     # uleb128 0x1; (DW_FORM_addr)
        .byte   0x12    # uleb128 0x12; (DW_AT_high_pc)
        .byte   0x1     # uleb128 0x1; (DW_FORM_addr)
        .byte   0x10    # uleb128 0x10; (DW_AT_stmt_list)
        .byte   0x6     # uleb128 0x6; (DW_FORM_data4)
        .byte   0x0
        .byte   0x0
        .byte   0x2     # uleb128 0x2; (abbrev code)
        .byte   0x2e    # uleb128 0x2e; (TAG: DW_TAG_subprogram)
        .byte   0x1     # DW_children_yes
        .byte   0x3f    # uleb128 0x3f; (DW_AT_external)
        .byte   0xc     # uleb128 0xc; (DW_FORM_flag)
        .byte   0x3     # uleb128 0x3; (DW_AT_name)
        .byte   0x8     # uleb128 0x8; (DW_FORM_string)
        .byte   0x3a    # uleb128 0x3a; (DW_AT_decl_file)
        .byte   0xb     # uleb128 0xb; (DW_FORM_data1)
        .byte   0x3b    # uleb128 0x3b; (DW_AT_decl_line)
        .byte   0xb     # uleb128 0xb; (DW_FORM_data1)
        .byte   0x27    # uleb128 0x27; (DW_AT_prototyped)
        .byte   0xc     # uleb128 0xc; (DW_FORM_flag)
        .byte   0x49    # uleb128 0x49; (DW_AT_type)
        .byte   0x13    # uleb128 0x13; (DW_FORM_ref4)
        .byte   0x11    # uleb128 0x11; (DW_AT_low_pc)
        .byte   0x1     # uleb128 0x1; (DW_FORM_addr)
        .byte   0x12    # uleb128 0x12; (DW_AT_high_pc)
        .byte   0x1     # uleb128 0x1; (DW_FORM_addr)
        .byte   0x40    # uleb128 0x40; (DW_AT_frame_base)
        .byte   0x6     # uleb128 0x6; (DW_FORM_data4)
        .byte   0x1     # uleb128 0x1; (DW_AT_sibling)
        .byte   0x13    # uleb128 0x13; (DW_FORM_ref4)
        .byte   0x0
        .byte   0x0
        .byte   0x3     # uleb128 0x3; (abbrev code)
        .byte   0x34    # uleb128 0x34; (TAG: DW_TAG_variable)
        .byte   0x0     # DW_children_no
        .byte   0x3     # uleb128 0x3; (DW_AT_name)
        .byte   0x8     # uleb128 0x8; (DW_FORM_string)
        .byte   0x3a    # uleb128 0x3a; (DW_AT_decl_file)
        .byte   0xb     # uleb128 0xb; (DW_FORM_data1)
        .byte   0x3b    # uleb128 0x3b; (DW_AT_decl_line)
        .byte   0xb     # uleb128 0xb; (DW_FORM_data1)
        .byte   0x49    # uleb128 0x49; (DW_AT_type)
        .byte   0x13    # uleb128 0x13; (DW_FORM_ref4)
        .byte   0x2     # uleb128 0x2; (DW_AT_location)
        .byte   0xa     # uleb128 0xa; (DW_FORM_block1)
        .byte   0x0
        .byte   0x0
        .byte   0x4     # uleb128 0x4; (abbrev code)
        .byte   0x24    # uleb128 0x24; (TAG: DW_TAG_base_type)
        .byte   0x0     # DW_children_no
        .byte   0xb     # uleb128 0xb; (DW_AT_byte_size)
        .byte   0xb     # uleb128 0xb; (DW_FORM_data1)
        .byte   0x3e    # uleb128 0x3e; (DW_AT_encoding)
        .byte   0xb     # uleb128 0xb; (DW_FORM_data1)
        .byte   0x3     # uleb128 0x3; (DW_AT_name)
        .byte   0x8     # uleb128 0x8; (DW_FORM_string)
        .byte   0x0
        .byte   0x0
        .byte   0x0
        .section __DWARF,__debug_pubnames,regular,debug
        .long   0x1b    # Length of Public Names Info
        .word   0x2     # DWARF Version
        .set L$set$15,Ldebug_info0-Lsection__debug_info
        .long L$set$15  # Offset of Compilation Unit Info
        .long   0xce    # Compilation Unit Length
        .long   0x97    # DIE offset
        .ascii "testfunc\0"     # external name
        .long   0x0
        .section __DWARF,__debug_aranges,regular,debug
        .long   0x1c    # Length of Address Ranges Info
        .word   0x2     # DWARF Version
        .set L$set$16,Ldebug_info0-Lsection__debug_info
        .long L$set$16  # Offset of Compilation Unit Info
        .byte   0x4     # Size of Address
        .byte   0x0     # Size of Segment Descriptor
        .word   0x0     # Pad to 8 byte boundary
        .word   0x0
        .long   Ltext0  # Address
        .set L$set$17,Letext0-Ltext0
        .long L$set$17  # Length
        .long   0x0
        .long   0x0
        .section __DWARF,__debug_line,regular,debug
        .set L$set$18,LELT0-LSLT0
        .long L$set$18  # Length of Source Line Info
LSLT0:
        .word   0x2     # DWARF Version
        .set L$set$19,LELTP0-LASLTP0
        .long L$set$19  # Prolog Length
LASLTP0:
        .byte   0x1     # Minimum Instruction Length
        .byte   0x1     # Default is_stmt_start flag
        .byte   0xf6    # Line Base Value (Special Opcodes)
        .byte   0xf5    # Line Range Value (Special Opcodes)
        .byte   0xa     # Special Opcode Base
        .byte   0x0     # opcode: 0x1 has 0 args
        .byte   0x1     # opcode: 0x2 has 1 args
        .byte   0x1     # opcode: 0x3 has 1 args
        .byte   0x1     # opcode: 0x4 has 1 args
        .byte   0x1     # opcode: 0x5 has 1 args
        .byte   0x0     # opcode: 0x6 has 0 args
        .byte   0x0     # opcode: 0x7 has 0 args
        .byte   0x0     # opcode: 0x8 has 0 args
        .byte   0x1     # opcode: 0x9 has 1 args
        .ascii "../tests\0"     # Directory Entry: 0x1
        .byte   0x0     # End directory table
        .ascii "simplistic.c\0" # File Entry: 0x1
        .byte   0x1     # uleb128 0x1
        .byte   0x0     # uleb128 0x0
        .byte   0x0     # uleb128 0x0
        .byte   0x0     # End file name table
LELTP0:
        .byte   0x0     # DW_LNE_set_address
        .byte   0x5     # uleb128 0x5
        .byte   0x2
        .long   LM1
        .byte   0x15    # line 2
        .byte   0x0     # DW_LNE_set_address
        .byte   0x5     # uleb128 0x5
        .byte   0x2
        .long   LM2
        .byte   0x16    # line 4
        .byte   0x0     # DW_LNE_set_address
        .byte   0x5     # uleb128 0x5
        .byte   0x2
        .long   LM3
        .byte   0x15    # line 5
        .byte   0x0     # DW_LNE_set_address
        .byte   0x5     # uleb128 0x5
        .byte   0x2
        .long   LM4
        .byte   0x15    # line 6
        .byte   0x0     # DW_LNE_set_address
        .byte   0x5     # uleb128 0x5
        .byte   0x2
        .long   Letext0
        .byte   0x0     # DW_LNE_end_sequence
        .byte   0x1     # uleb128 0x1
        .byte   0x1
LELT0:
        .subsections_via_symbols

        .section __DWARF,__debug_frame,regular,debug
Lsection__debug_frame:
        .section __DWARF,__debug_info,regular,debug
Lsection__debug_info:
        .section __DWARF,__debug_abbrev,regular,debug
Lsection__debug_abbrev:
        .section __DWARF,__debug_aranges,regular,debug
Lsection__debug_aranges:
        .section __DWARF,__debug_macinfo,regular,debug
Lsection__debug_macinfo:
        .section __DWARF,__debug_line,regular,debug
Lsection__debug_line:
        .section __DWARF,__debug_loc,regular,debug
Lsection__debug_loc:
        .section __DWARF,__debug_pubnames,regular,debug
Lsection__debug_pubnames:
        .section __DWARF,__debug_pubtypes,regular,debug
Lsection__debug_pubtypes:
        .section __DWARF,__debug_str,regular,debug
Lsection__debug_str:
        .section __DWARF,__debug_ranges,regular,debug
Lsection__debug_ranges:
# GNU C (GCC) version 4.5.0 20090923 (experimental) [trunk revision 152097] 
(i686-apple-darwin9)
#       compiled by GNU C version 4.5.0 20090923 (experimental) [trunk revision 
152097], GMP version 4.3.1, MPFR version 2.4.1
# GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
# options passed:  -fpreprocessed simplistic.i -fPIC
# -feliminate-unused-debug-symbols -mmacosx-version-min=10.5.8
# -mtune=generic -g -O0 -fverbose-asm
# options enabled:  -fPIC -falign-loops -fargument-alias -fauto-inc-dec
# -fbranch-count-reg -fcommon -fdelete-null-pointer-checks -fearly-inlining
# -feliminate-unused-debug-symbols -feliminate-unused-debug-types
# -ffunction-cse -fgcse-lm -fident -finline-functions-called-once
# -fira-share-save-slots -fira-share-spill-slots -fivopts
# -fkeep-static-consts -fleading-underscore -fmerge-debug-strings
# -fmove-loop-invariants -fpeephole -freg-struct-return
# -fsched-critical-path-heuristic -fsched-dep-count-heuristic
# -fsched-group-heuristic -fsched-interblock -fsched-last-insn-heuristic
# -fsched-rank-heuristic -fsched-spec -fsched-spec-insn-heuristic
# -fsched-stalled-insns-dep -fshow-column -fsigned-zeros
# -fsplit-ivs-in-unroller -ftrapping-math -ftree-cselim -ftree-forwprop
# -ftree-loop-im -ftree-loop-ivcanon -ftree-loop-optimize
# -ftree-parallelize-loops= -ftree-phiprop -ftree-pta -ftree-reassoc
# -ftree-scev-cprop -ftree-slp-vectorize -ftree-switch-conversion
# -ftree-vect-loop-version -funit-at-a-time -fvect-cost-model -fverbose-asm
# -fzero-initialized-in-bss -gstrict-dwarf -m128bit-long-double -m32
# -m80387 -maccumulate-outgoing-args -malign-stringops -mfancy-math-387
# -mfp-ret-in-387 -mieee-fp -mmmx -mno-red-zone -mno-sse4 -mpush-args
# -msahf -msse -msse2

        .section __DWARF,__debug_abbrev,regular,debug
Ldebug_abbrev0:
        .section __DWARF,__debug_info,regular,debug
Ldebug_info0:
        .section __DWARF,__debug_line,regular,debug
Ldebug_line0:
        .text
Ltext0:
# Compiler executable checksum: b33d0d45a6dc952828668e60336cea35

.globl _testfunc
_testfunc:
LFB0:
        # ../tests/simplistic.c:2
LM1:
        # basic block 2
        pushl   %ebp    #
LCFI0:
        movl    %esp, %ebp      #,
LCFI1:
        subl    $24, %esp       #,
LCFI2:
        # ../tests/simplistic.c:4
LM2:
        movl    $1, -12(%ebp)   #, i
        # ../tests/simplistic.c:5
LM3:
        movl    -12(%ebp), %eax # i, D.2665
        # ../tests/simplistic.c:6
LM4:
        leave
LCFI3:
        ret
LFE0:
        .section __DWARF,__debug_frame,regular,debug
Lframe0:
        .set L$set$0,LECIE0-LSCIE0
        .long L$set$0   # Length of Common Information Entry
LSCIE0:
        .long   0xffffffff      # CIE Identifier Tag
        .byte   0x1     # CIE Version
        .ascii "\0"     # CIE Augmentation
        .byte   0x1     # uleb128 0x1; CIE Code Alignment Factor
        .byte   0x7c    # sleb128 -4; CIE Data Alignment Factor
        .byte   0x8     # CIE RA Column
        .byte   0xc     # DW_CFA_def_cfa
        .byte   0x4     # uleb128 0x4
        .byte   0x4     # uleb128 0x4
        .byte   0x88    # DW_CFA_offset, column 0x8
        .byte   0x1     # uleb128 0x1
        .align 2
LECIE0:
LSFDE0:
        .set L$set$1,LEFDE0-LASFDE0
        .long L$set$1   # FDE Length
LASFDE0:
        .set L$set$2,Lframe0-Lsection__debug_frame
        .long L$set$2   # FDE CIE offset
        .long   LFB0    # FDE initial location
        .set L$set$3,LFE0-LFB0
        .long L$set$3   # FDE address range
        .byte   0x4     # DW_CFA_advance_loc4
        .set L$set$4,LCFI0-LFB0
        .long L$set$4
        .byte   0xe     # DW_CFA_def_cfa_offset
        .byte   0x8     # uleb128 0x8
        .byte   0x85    # DW_CFA_offset, column 0x5
        .byte   0x2     # uleb128 0x2
        .byte   0x4     # DW_CFA_advance_loc4
        .set L$set$5,LCFI1-LCFI0
        .long L$set$5
        .byte   0xd     # DW_CFA_def_cfa_register
        .byte   0x5     # uleb128 0x5
        .byte   0x4     # DW_CFA_advance_loc4
        .set L$set$6,LCFI3-LCFI1
        .long L$set$6
        .byte   0xc5    # DW_CFA_restore, column 0x5
        .byte   0xc     # DW_CFA_def_cfa
        .byte   0x4     # uleb128 0x4
        .byte   0x4     # uleb128 0x4
        .align 2
LEFDE0:
        .text
Letext0:
        .section __DWARF,__debug_loc,regular,debug
Ldebug_loc0:
LLST0:
        .set L$set$7,LFB0-Ltext0
        .long L$set$7   # Location list begin address (*LLST0)
        .set L$set$8,LCFI0-Ltext0
        .long L$set$8   # Location list end address (*LLST0)
        .word   0x2     # Location expression size
        .byte   0x74    # DW_OP_breg4
        .byte   0x4     # sleb128 4
        .set L$set$9,LCFI0-Ltext0
        .long L$set$9   # Location list begin address (*LLST0)
        .set L$set$10,LCFI1-Ltext0
        .long L$set$10  # Location list end address (*LLST0)
        .word   0x2     # Location expression size
        .byte   0x74    # DW_OP_breg4
        .byte   0x8     # sleb128 8
        .set L$set$11,LCFI1-Ltext0
        .long L$set$11  # Location list begin address (*LLST0)
        .set L$set$12,LCFI3-Ltext0
        .long L$set$12  # Location list end address (*LLST0)
        .word   0x2     # Location expression size
        .byte   0x75    # DW_OP_breg5
        .byte   0x8     # sleb128 8
        .set L$set$13,LCFI3-Ltext0
        .long L$set$13  # Location list begin address (*LLST0)
        .set L$set$14,LFE0-Ltext0
        .long L$set$14  # Location list end address (*LLST0)
        .word   0x2     # Location expression size
        .byte   0x74    # DW_OP_breg4
        .byte   0x4     # sleb128 4
        .long   0x0     # Location list terminator begin (*LLST0)
        .long   0x0     # Location list terminator end (*LLST0)
        .section __DWARF,__debug_info,regular,debug
        .long   0xc3    # Length of Compilation Unit Info
        .word   0x2     # DWARF version number
        .set L$set$15,Ldebug_abbrev0-Lsection__debug_abbrev
        .long L$set$15  # Offset Into Abbrev. Section
        .byte   0x4     # Pointer Size (in bytes)
        .byte   0x1     # uleb128 0x1; (DIE (0xb) DW_TAG_compile_unit)
        .ascii "GNU C 4.5.0 20090923 (experimental) [trunk revision 152097]\0"  
# DW_AT_producer
        .byte   0x1     # DW_AT_language
        .ascii "../tests/simplistic.c\0"        # DW_AT_name
        .ascii "/Volumes/ScratchCS/gcc-4-5-reg-build\0" # DW_AT_comp_dir
        .long   Ltext0  # DW_AT_low_pc
        .long   Letext0 # DW_AT_high_pc
        .set L$set$16,Ldebug_line0-Lsection__debug_line
        .long L$set$16  # DW_AT_stmt_list
        .byte   0x2     # uleb128 0x2; (DIE (0x90) DW_TAG_subprogram)
        .byte   0x1     # DW_AT_external
        .ascii "testfunc\0"     # DW_AT_name
        .byte   0x1     # DW_AT_decl_file (../tests/simplistic.c)
        .byte   0x1     # DW_AT_decl_line
        .byte   0x1     # DW_AT_prototyped
        .long   0xbf    # DW_AT_type
        .long   LFB0    # DW_AT_low_pc
        .long   LFE0    # DW_AT_high_pc
        .set L$set$17,LLST0-Lsection__debug_loc
        .long L$set$17  # DW_AT_frame_base
        .long   0xbf    # DW_AT_sibling
        .byte   0x3     # uleb128 0x3; (DIE (0xb2) DW_TAG_variable)
        .ascii "i\0"    # DW_AT_name
        .byte   0x1     # DW_AT_decl_file (../tests/simplistic.c)
        .byte   0x3     # DW_AT_decl_line
        .long   0xbf    # DW_AT_type
        .byte   0x2     # DW_AT_location
        .byte   0x91    # DW_OP_fbreg
        .byte   0x6c    # sleb128 -20
        .byte   0x0     # end of children of DIE 0x90
        .byte   0x4     # uleb128 0x4; (DIE (0xbf) DW_TAG_base_type)
        .byte   0x4     # DW_AT_byte_size
        .byte   0x5     # DW_AT_encoding
        .ascii "int\0"  # DW_AT_name
        .byte   0x0     # end of children of DIE 0xb
        .section __DWARF,__debug_abbrev,regular,debug
        .byte   0x1     # uleb128 0x1; (abbrev code)
        .byte   0x11    # uleb128 0x11; (TAG: DW_TAG_compile_unit)
        .byte   0x1     # DW_children_yes
        .byte   0x25    # uleb128 0x25; (DW_AT_producer)
        .byte   0x8     # uleb128 0x8; (DW_FORM_string)
        .byte   0x13    # uleb128 0x13; (DW_AT_language)
        .byte   0xb     # uleb128 0xb; (DW_FORM_data1)
        .byte   0x3     # uleb128 0x3; (DW_AT_name)
        .byte   0x8     # uleb128 0x8; (DW_FORM_string)
        .byte   0x1b    # uleb128 0x1b; (DW_AT_comp_dir)
        .byte   0x8     # uleb128 0x8; (DW_FORM_string)
        .byte   0x11    # uleb128 0x11; (DW_AT_low_pc)
        .byte   0x1     # uleb128 0x1; (DW_FORM_addr)
        .byte   0x12    # uleb128 0x12; (DW_AT_high_pc)
        .byte   0x1     # uleb128 0x1; (DW_FORM_addr)
        .byte   0x10    # uleb128 0x10; (DW_AT_stmt_list)
        .byte   0x6     # uleb128 0x6; (DW_FORM_data4)
        .byte   0x0
        .byte   0x0
        .byte   0x2     # uleb128 0x2; (abbrev code)
        .byte   0x2e    # uleb128 0x2e; (TAG: DW_TAG_subprogram)
        .byte   0x1     # DW_children_yes
        .byte   0x3f    # uleb128 0x3f; (DW_AT_external)
        .byte   0xc     # uleb128 0xc; (DW_FORM_flag)
        .byte   0x3     # uleb128 0x3; (DW_AT_name)
        .byte   0x8     # uleb128 0x8; (DW_FORM_string)
        .byte   0x3a    # uleb128 0x3a; (DW_AT_decl_file)
        .byte   0xb     # uleb128 0xb; (DW_FORM_data1)
        .byte   0x3b    # uleb128 0x3b; (DW_AT_decl_line)
        .byte   0xb     # uleb128 0xb; (DW_FORM_data1)
        .byte   0x27    # uleb128 0x27; (DW_AT_prototyped)
        .byte   0xc     # uleb128 0xc; (DW_FORM_flag)
        .byte   0x49    # uleb128 0x49; (DW_AT_type)
        .byte   0x13    # uleb128 0x13; (DW_FORM_ref4)
        .byte   0x11    # uleb128 0x11; (DW_AT_low_pc)
        .byte   0x1     # uleb128 0x1; (DW_FORM_addr)
        .byte   0x12    # uleb128 0x12; (DW_AT_high_pc)
        .byte   0x1     # uleb128 0x1; (DW_FORM_addr)
        .byte   0x40    # uleb128 0x40; (DW_AT_frame_base)
        .byte   0x6     # uleb128 0x6; (DW_FORM_data4)
        .byte   0x1     # uleb128 0x1; (DW_AT_sibling)
        .byte   0x13    # uleb128 0x13; (DW_FORM_ref4)
        .byte   0x0
        .byte   0x0
        .byte   0x3     # uleb128 0x3; (abbrev code)
        .byte   0x34    # uleb128 0x34; (TAG: DW_TAG_variable)
        .byte   0x0     # DW_children_no
        .byte   0x3     # uleb128 0x3; (DW_AT_name)
        .byte   0x8     # uleb128 0x8; (DW_FORM_string)
        .byte   0x3a    # uleb128 0x3a; (DW_AT_decl_file)
        .byte   0xb     # uleb128 0xb; (DW_FORM_data1)
        .byte   0x3b    # uleb128 0x3b; (DW_AT_decl_line)
        .byte   0xb     # uleb128 0xb; (DW_FORM_data1)
        .byte   0x49    # uleb128 0x49; (DW_AT_type)
        .byte   0x13    # uleb128 0x13; (DW_FORM_ref4)
        .byte   0x2     # uleb128 0x2; (DW_AT_location)
        .byte   0xa     # uleb128 0xa; (DW_FORM_block1)
        .byte   0x0
        .byte   0x0
        .byte   0x4     # uleb128 0x4; (abbrev code)
        .byte   0x24    # uleb128 0x24; (TAG: DW_TAG_base_type)
        .byte   0x0     # DW_children_no
        .byte   0xb     # uleb128 0xb; (DW_AT_byte_size)
        .byte   0xb     # uleb128 0xb; (DW_FORM_data1)
        .byte   0x3e    # uleb128 0x3e; (DW_AT_encoding)
        .byte   0xb     # uleb128 0xb; (DW_FORM_data1)
        .byte   0x3     # uleb128 0x3; (DW_AT_name)
        .byte   0x8     # uleb128 0x8; (DW_FORM_string)
        .byte   0x0
        .byte   0x0
        .byte   0x0
        .section __DWARF,__debug_pubnames,regular,debug
        .long   0x1b    # Length of Public Names Info
        .word   0x2     # DWARF Version
        .set L$set$18,Ldebug_info0-Lsection__debug_info
        .long L$set$18  # Offset of Compilation Unit Info
        .long   0xc7    # Compilation Unit Length
        .long   0x90    # DIE offset
        .ascii "testfunc\0"     # external name
        .long   0x0
        .section __DWARF,__debug_aranges,regular,debug
        .long   0x1c    # Length of Address Ranges Info
        .word   0x2     # DWARF Version
        .set L$set$19,Ldebug_info0-Lsection__debug_info
        .long L$set$19  # Offset of Compilation Unit Info
        .byte   0x4     # Size of Address
        .byte   0x0     # Size of Segment Descriptor
        .word   0x0     # Pad to 8 byte boundary
        .word   0x0
        .long   Ltext0  # Address
        .set L$set$20,Letext0-Ltext0
        .long L$set$20  # Length
        .long   0x0
        .long   0x0
        .section __DWARF,__debug_line,regular,debug
        .set L$set$21,LELT0-LSLT0
        .long L$set$21  # Length of Source Line Info
LSLT0:
        .word   0x2     # DWARF Version
        .set L$set$22,LELTP0-LASLTP0
        .long L$set$22  # Prolog Length
LASLTP0:
        .byte   0x1     # Minimum Instruction Length
        .byte   0x1     # Default is_stmt_start flag
        .byte   0xf6    # Line Base Value (Special Opcodes)
        .byte   0xf5    # Line Range Value (Special Opcodes)
        .byte   0xa     # Special Opcode Base
        .byte   0x0     # opcode: 0x1 has 0 args
        .byte   0x1     # opcode: 0x2 has 1 args
        .byte   0x1     # opcode: 0x3 has 1 args
        .byte   0x1     # opcode: 0x4 has 1 args
        .byte   0x1     # opcode: 0x5 has 1 args
        .byte   0x0     # opcode: 0x6 has 0 args
        .byte   0x0     # opcode: 0x7 has 0 args
        .byte   0x0     # opcode: 0x8 has 0 args
        .byte   0x1     # opcode: 0x9 has 1 args
        .ascii "../tests\0"     # Directory Entry: 0x1
        .byte   0x0     # End directory table
        .ascii "simplistic.c\0" # File Entry: 0x1
        .byte   0x1     # uleb128 0x1
        .byte   0x0     # uleb128 0x0
        .byte   0x0     # uleb128 0x0
        .byte   0x0     # End file name table
LELTP0:
        .byte   0x0     # DW_LNE_set_address
        .byte   0x5     # uleb128 0x5
        .byte   0x2
        .long   LM1
        .byte   0x15    # line 2
        .byte   0x0     # DW_LNE_set_address
        .byte   0x5     # uleb128 0x5
        .byte   0x2
        .long   LM2
        .byte   0x16    # line 4
        .byte   0x0     # DW_LNE_set_address
        .byte   0x5     # uleb128 0x5
        .byte   0x2
        .long   LM3
        .byte   0x15    # line 5
        .byte   0x0     # DW_LNE_set_address
        .byte   0x5     # uleb128 0x5
        .byte   0x2
        .long   LM4
        .byte   0x15    # line 6
        .byte   0x0     # DW_LNE_set_address
        .byte   0x5     # uleb128 0x5
        .byte   0x2
        .long   Letext0
        .byte   0x0     # DW_LNE_end_sequence
        .byte   0x1     # uleb128 0x1
        .byte   0x1
LELT0:
        .subsections_via_symbols

Reply via email to