150 lines · plain
1# RUN: llvm-mc -triple=x86_64-pc-linux -filetype=obj %s > %t2# RUN: %lldb %t -o "image lookup -v -s lookup_rnglists" \3# RUN: -o "image lookup -v -s lookup_rnglists2" -o exit | FileCheck %s4 5# CHECK-LABEL: image lookup -v -s lookup_rnglists6# CHECK: Function: id = {0x00000030}, name = "rnglists", range = [0x0000000000000000-0x0000000000000004)7# CHECK: Blocks: id = {0x00000030}, range = [0x00000000-0x00000004)8# CHECK-NEXT: id = {0x00000046}, ranges = [0x00000001-0x00000002)[0x00000003-0x00000004)9 10# CHECK-LABEL: image lookup -v -s lookup_rnglists211# CHECK: Function: id = {0x0000007a}, name = "rnglists2", range = [0x0000000000000004-0x0000000000000007)12# CHECK: Blocks: id = {0x0000007a}, range = [0x00000004-0x00000007)13# CHECK-NEXT: id = {0x00000091}, range = [0x00000005-0x00000007)14 15 .text16 .p2align 1217rnglists:18 nop19.Lblock1_begin:20lookup_rnglists:21 nop22.Lblock1_end:23 nop24.Lblock2_begin:25 nop26.Lblock2_end:27.Lrnglists_end:28 29rnglists2:30 nop31.Lblock3_begin:32lookup_rnglists2:33 nop34 nop35.Lblock3_end:36.Lrnglists2_end:37 38 .section .debug_abbrev,"",@progbits39 .byte 1 # Abbreviation Code40 .byte 17 # DW_TAG_compile_unit41 .byte 1 # DW_CHILDREN_yes42 .byte 37 # DW_AT_producer43 .byte 8 # DW_FORM_string44 .byte 17 # DW_AT_low_pc45 .byte 1 # DW_FORM_addr46 .byte 18 # DW_AT_high_pc47 .byte 6 # DW_FORM_data448 .byte 116 # DW_AT_rnglists_base49 .byte 23 # DW_FORM_sec_offset50 .byte 0 # EOM(1)51 .byte 0 # EOM(2)52 .byte 2 # Abbreviation Code53 .byte 46 # DW_TAG_subprogram54 .byte 1 # DW_CHILDREN_yes55 .byte 17 # DW_AT_low_pc56 .byte 1 # DW_FORM_addr57 .byte 18 # DW_AT_high_pc58 .byte 6 # DW_FORM_data459 .byte 3 # DW_AT_name60 .byte 8 # DW_FORM_string61 .byte 0 # EOM(1)62 .byte 0 # EOM(2)63 .byte 5 # Abbreviation Code64 .byte 11 # DW_TAG_lexical_block65 .byte 0 # DW_CHILDREN_no66 .byte 85 # DW_AT_ranges67 .byte 35 # DW_FORM_rnglistx68 .byte 0 # EOM(1)69 .byte 0 # EOM(2)70 .byte 0 # EOM(3)71 72 .section .debug_info,"",@progbits73.Lcu_begin0:74 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit75.Ldebug_info_start0:76 .short 5 # DWARF version number77 .byte 1 # DWARF Unit Type78 .byte 8 # Address Size (in bytes)79 .long .debug_abbrev # Offset Into Abbrev. Section80 .byte 1 # Abbrev [1] 0xc:0x5f DW_TAG_compile_unit81 .asciz "Hand-written DWARF" # DW_AT_producer82 .quad rnglists # DW_AT_low_pc83 .long .Lrnglists_end-rnglists # DW_AT_high_pc84 .long .Lrnglists_table_base0 # DW_AT_rnglists_base85 .byte 2 # Abbrev [2] 0x2b:0x37 DW_TAG_subprogram86 .quad rnglists # DW_AT_low_pc87 .long .Lrnglists_end-rnglists # DW_AT_high_pc88 .asciz "rnglists" # DW_AT_name89 .byte 5 # Abbrev [5] 0x52:0xf DW_TAG_lexical_block90 .byte 0 # DW_AT_ranges91 .byte 0 # End Of Children Mark92 .byte 0 # End Of Children Mark93.Ldebug_info_end0:94 95.Lcu_begin1:96 .long .Ldebug_info_end1-.Ldebug_info_start1 # Length of Unit97.Ldebug_info_start1:98 .short 5 # DWARF version number99 .byte 1 # DWARF Unit Type100 .byte 8 # Address Size (in bytes)101 .long .debug_abbrev # Offset Into Abbrev. Section102 .byte 1 # Abbrev [1] 0xc:0x5f DW_TAG_compile_unit103 .asciz "Hand-written DWARF" # DW_AT_producer104 .quad rnglists2 # DW_AT_low_pc105 .long .Lrnglists2_end-rnglists2 # DW_AT_high_pc106 .long .Lrnglists_table_base1 # DW_AT_rnglists_base107 .byte 2 # Abbrev [2] 0x2b:0x37 DW_TAG_subprogram108 .quad rnglists2 # DW_AT_low_pc109 .long .Lrnglists2_end-rnglists2 # DW_AT_high_pc110 .asciz "rnglists2" # DW_AT_name111 .byte 5 # Abbrev [5] 0x52:0xf DW_TAG_lexical_block112 .byte 0 # DW_AT_ranges113 .byte 0 # End Of Children Mark114 .byte 0 # End Of Children Mark115.Ldebug_info_end1:116 117 .section .debug_rnglists,"",@progbits118 .long .Ldebug_rnglist_table_end0-.Ldebug_rnglist_table_start0 # Length119.Ldebug_rnglist_table_start0:120 .short 5 # Version121 .byte 8 # Address size122 .byte 0 # Segment selector size123 .long 1 # Offset entry count124.Lrnglists_table_base0:125 .long .Ldebug_ranges0-.Lrnglists_table_base0126.Ldebug_ranges0:127 .byte 4 # DW_RLE_offset_pair128 .uleb128 .Lblock2_begin-rnglists # starting offset129 .uleb128 .Lblock2_end-rnglists # ending offset130 .byte 4 # DW_RLE_offset_pair131 .uleb128 .Lblock1_begin-rnglists # starting offset132 .uleb128 .Lblock1_end-rnglists # ending offset133 .byte 0 # DW_RLE_end_of_list134.Ldebug_rnglist_table_end0:135 136 .long .Ldebug_rnglist_table_end1-.Ldebug_rnglist_table_start1 # Length137.Ldebug_rnglist_table_start1:138 .short 5 # Version139 .byte 8 # Address size140 .byte 0 # Segment selector size141 .long 1 # Offset entry count142.Lrnglists_table_base1:143 .long .Ldebug_ranges1-.Lrnglists_table_base1144.Ldebug_ranges1:145 .byte 4 # DW_RLE_offset_pair146 .uleb128 .Lblock3_begin-rnglists2 # starting offset147 .uleb128 .Lblock3_end-rnglists2 # ending offset148 .byte 0 # DW_RLE_end_of_list149.Ldebug_rnglist_table_end1:150