1 # Test .debug_info can reference .debug_ranges entries without ordering the 2 # offsets strictly as increasing. 3 4 .text 5 start: 6 .byte 1 7 sub: 8 .byte 2 9 end: 10 11 .section .debug_ranges,"",%progbits 12 range: 13 14 range_sub: 15 .4byte sub, end 16 .4byte 0, 0 ;# range terminator 17 18 range_cu: 19 .4byte start, end 20 .4byte 0, 0 ;# range terminator 21 22 .section .debug_info,"",%progbits 23 .4byte debugE - debugS ;# Length of Compilation Unit Info 24 debugS: 25 .short 0x2 ;# DWARF version number 26 .4byte abbrev0 ;# Offset Into Abbrev. Section 27 .byte 0x4 ;# Pointer Size (in bytes) 28 29 .uleb128 0x1 ;# (DIE (0xb) DW_TAG_compile_unit) 30 .4byte range_cu - range ;# DW_AT_ranges 31 32 .uleb128 0x2 ;# (DIE (0x6d) DW_TAG_subprogram) 33 .ascii "A\0" ;# DW_AT_name 34 .4byte range_sub - range ;# DW_AT_ranges 35 36 ;# minimal section alignment on alpha-* is 2, ensure no new invalid CU 37 ;# will be started. 38 .balign 2 39 debugE: 40 41 .section .debug_abbrev,"",%progbits 42 abbrev0: 43 .uleb128 0x1 ;# (abbrev code) 44 .uleb128 0x11 ;# (TAG: DW_TAG_compile_unit) 45 .byte 0x0 ;# DW_children_no 46 .uleb128 0x55 ;# (DW_AT_ranges) 47 .uleb128 0x6 ;# (DW_FORM_data4) 48 .byte 0x0 49 .byte 0x0 50 51 .uleb128 0x2 ;# (abbrev code) 52 .uleb128 0x2e ;# (TAG: DW_TAG_subprogram) 53 .byte 0x0 ;# DW_children_no 54 .uleb128 0x3 ;# (DW_AT_name) 55 .uleb128 0x8 ;# (DW_FORM_string) 56 .uleb128 0x55 ;# (DW_AT_ranges) 57 .uleb128 0x6 ;# (DW_FORM_data4) 58 .byte 0x0 59 .byte 0x0 60 61 .byte 0x0 ;# abbrevs terminator 62