156 lines · plain
1# RUN: mkdir -p %t.dir2# RUN: cd %t.dir3# RUN: llvm-mc -triple=x86_64-pc-linux -filetype=obj %s >debug_rnglists-dwo.o4# RUN: %lldb debug_rnglists-dwo.o -o "image lookup -v -s lookup_rnglists" \5# RUN: -o exit | FileCheck %s6 7# CHECK-LABEL: image lookup -v -s lookup_rnglists8# CHECK: Function: id = {0x4000000000000028}, name = "rnglists", range = [0x0000000000000000-0x0000000000000003)9# CHECK: Blocks: id = {0x4000000000000028}, range = [0x00000000-0x00000003)10# CHECK-NEXT: id = {0x4000000000000037}, range = [0x00000001-0x00000002)11 12 .text13rnglists:14 nop15.Lblock1_begin:16lookup_rnglists:17 nop18.Lblock1_end:19 nop20.Lrnglists_end:21 22 .section .debug_abbrev,"",@progbits23 .byte 1 # Abbreviation Code24 .byte 17 # DW_TAG_compile_unit25 .byte 0 # DW_CHILDREN_no26 .byte 0x76 # DW_AT_dwo_name27 .byte 8 # DW_FORM_string28 .byte 115 # DW_AT_addr_base29 .byte 23 # DW_FORM_sec_offset30 .byte 85 # DW_AT_ranges31 .byte 35 # DW_FORM_rnglistx32 .byte 116 # DW_AT_rnglists_base33 .byte 23 # DW_FORM_sec_offset34 .byte 0 # EOM(1)35 .byte 0 # EOM(2)36 .byte 0 # EOM(3)37 38 .section .debug_info,"",@progbits39.Lcu_begin0:40 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit41.Ldebug_info_start0:42 .short 5 # DWARF version number43 .byte 4 # DWARF Unit Type44 .byte 8 # Address Size (in bytes)45 .long .debug_abbrev # Offset Into Abbrev. Section46 .quad 0xdeadbeefbaadf00d # DWO id47 .byte 1 # Abbrev [1] 0xc:0x5f DW_TAG_compile_unit48 .asciz "debug_rnglists-dwo.o" # DW_AT_dwo_name49 .long .Laddr_table_base0 # DW_AT_addr_base50 .byte 0 # DW_AT_ranges51 .long .Lskel_rnglists_table_base # DW_AT_rnglists_base52.Ldebug_info_end0:53 54 .section .debug_addr,"",@progbits55 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution56.Ldebug_addr_start0:57 .short 5 # DWARF version number58 .byte 8 # Address size59 .byte 0 # Segment selector size60.Laddr_table_base0:61 .quad rnglists62 .quad .Lblock1_begin63.Ldebug_addr_end0:64 65 .section .debug_rnglists,"",@progbits66 # A fake rnglists contribution so that range list bases for the skeleton67 # and split units differ.68 .long .Lfake_rnglist_table_end-.Lfake_rnglist_table_start # Length69.Lfake_rnglist_table_start:70 .short 5 # Version71 .byte 8 # Address size72 .byte 0 # Segment selector size73 .long 0 # Offset entry count74.Lfake_rnglists_table_base:75.Lfake_rnglist_table_end:76 77 .long .Lskel_rnglist_table_end-.Lskel_rnglist_table_start # Length78.Lskel_rnglist_table_start:79 .short 5 # Version80 .byte 8 # Address size81 .byte 0 # Segment selector size82 .long 1 # Offset entry count83.Lskel_rnglists_table_base:84 .long .Lskel_ranges0-.Lskel_rnglists_table_base85.Lskel_ranges0:86 .byte 7 # DW_RLE_start_length87 .quad rnglists88 .uleb128 .Lrnglists_end-rnglists89 .byte 0 # DW_RLE_end_of_list90.Lskel_rnglist_table_end:91 92 .section .debug_abbrev.dwo,"e",@progbits93 .byte 1 # Abbreviation Code94 .byte 17 # DW_TAG_compile_unit95 .byte 1 # DW_CHILDREN_yes96 .byte 37 # DW_AT_producer97 .byte 8 # DW_FORM_string98 .byte 0 # EOM(1)99 .byte 0 # EOM(2)100 .byte 2 # Abbreviation Code101 .byte 46 # DW_TAG_subprogram102 .byte 1 # DW_CHILDREN_yes103 .byte 17 # DW_AT_low_pc104 .byte 27 # DW_FORM_addrx105 .byte 18 # DW_AT_high_pc106 .byte 6 # DW_FORM_data4107 .byte 3 # DW_AT_name108 .byte 8 # DW_FORM_string109 .byte 0 # EOM(1)110 .byte 0 # EOM(2)111 .byte 5 # Abbreviation Code112 .byte 11 # DW_TAG_lexical_block113 .byte 0 # DW_CHILDREN_no114 .byte 85 # DW_AT_ranges115 .byte 35 # DW_FORM_rnglistx116 .byte 0 # EOM(1)117 .byte 0 # EOM(2)118 .byte 0 # EOM(3)119 120 .section .debug_info.dwo,"e",@progbits121.Lcu_begin1:122 .long .Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit123.Ldebug_info_start1:124 .short 5 # DWARF version number125 .byte 5 # DWARF Unit Type126 .byte 8 # Address Size (in bytes)127 .long .debug_abbrev # Offset Into Abbrev. Section128 .quad 0xdeadbeefbaadf00d # DWO id129 .byte 1 # Abbrev [1] 0xc:0x5f DW_TAG_compile_unit130 .asciz "Hand-written DWARF" # DW_AT_producer131 .byte 2 # Abbrev [2] 0x2b:0x37 DW_TAG_subprogram132 .byte 0 # DW_AT_low_pc133 .long .Lrnglists_end-rnglists # DW_AT_high_pc134 .asciz "rnglists" # DW_AT_name135 .byte 5 # Abbrev [5] 0x52:0xf DW_TAG_lexical_block136 .byte 0 # DW_AT_ranges137 .byte 0 # End Of Children Mark138 .byte 0 # End Of Children Mark139.Ldebug_info_end1:140 141 .section .debug_rnglists.dwo,"e",@progbits142 .long .Ldwo_rnglist_table_end-.Ldwo_rnglist_table_start # Length143.Ldwo_rnglist_table_start:144 .short 5 # Version145 .byte 8 # Address size146 .byte 0 # Segment selector size147 .long 1 # Offset entry count148.Ldwo_rnglists_table_base:149 .long .Ldwo_ranges-.Ldwo_rnglists_table_base150.Ldwo_ranges:151 .byte 3 # DW_RLE_startx_length152 .uleb128 1153 .uleb128 .Lblock1_end-.Lblock1_begin154 .byte 0 # DW_RLE_end_of_list155.Ldwo_rnglist_table_end:156