543 lines · plain
1# RUN: llvm-mc %s -filetype obj -triple i386-pc-linux -o %t.o2# RUN: llvm-dwarfdump -v -debug-info -debug-line -debug-addr -debug-rnglists -debug-ranges %t.o | FileCheck --implicit-check-not=DW_TAG --implicit-check-not=DW_AT %s3 4# Test that llvm - dwarfdump strips addresses relating to dead code(using the5# DWARFv6 - proposed tombstone constant & nearest equivalent for debug_ranges)6# Testing the tombstone use in debug_info (addr/addrx), debug_ranges,7# debug_rnglists, debug_ranges, and debug_line.8 9# CHECK-DAG: .debug_info contents:10# CHECK: DW_TAG_compile_unit11# CHECK: DW_AT_ranges [DW_FORM_sec_offset] (0x0000000012# CHECK-NEXT: [0x00000042, 0x00000048))13# CHECK: DW_TAG_subprogram14# CHECK: DW_AT_low_pc [DW_FORM_addr] (0xffffffff (dead code))15# CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)16# CHECK: DW_TAG_subprogram17# CHECK: DW_AT_low_pc [DW_FORM_addr] (0x00000042)18# CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)19# CHECK: DW_TAG_compile_unit20# CHECK: DW_AT_addr_base21# CHECK: DW_AT_ranges [DW_FORM_sec_offset] (0x0000000c22# CHECK-NEXT: [0x00000042, 0x00000048)23# CHECK-NEXT: [0x00000042, 0x00000048)24# CHECK-NEXT: [0x00000042, 0x00000048)25# CHECK-NEXT: [0x00000042, 0x00000042)26# CHECK-NEXT: [0x00000042, 0x00000048)27# CHECK-NEXT: [0x00000042, 0x00000048))28# CHECK: DW_TAG_subprogram29# CHECK: DW_AT_low_pc [DW_FORM_addrx] (indexed (00000000) address = 0xffffffff (dead code))30# CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)31# CHECK: DW_TAG_subprogram32# CHECK: DW_AT_low_pc [DW_FORM_addrx] (indexed (00000001) address = 0x00000042)33# CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)34# CHECK: DW_TAG_compile_unit35# CHECK: DW_AT_ranges [DW_FORM_sec_offset] (0x0000001836# CHECK-NEXT: [0x0000000000000042, 0x0000000000000048))37# CHECK: DW_TAG_subprogram38# CHECK: DW_AT_low_pc [DW_FORM_addr] (0xffffffffffffffff (dead code))39# CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)40# CHECK: DW_TAG_subprogram41# CHECK: DW_AT_low_pc [DW_FORM_addr] (0x0000000000000042)42# CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)43# CHECK: DW_TAG_compile_unit44# CHECK: DW_AT_addr_base45 46 47# CHECK: DW_AT_ranges48# CHECK-NEXT: [0x0000000000000042, 0x0000000000000048)49# CHECK-NEXT: [0x0000000000000042, 0x0000000000000048)50# CHECK-NEXT: [0x0000000000000042, 0x0000000000000048)51# CHECK-NEXT: [0x0000000000000042, 0x0000000000000042)52# CHECK-NEXT: [0x0000000000000042, 0x0000000000000048)53# CHECK-NEXT: [0x0000000000000042, 0x0000000000000048))54# CHECK: DW_TAG_subprogram55# CHECK: DW_AT_low_pc [DW_FORM_addrx] (indexed (00000000) address = 0xffffffffffffffff (dead code))56# CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)57# CHECK: DW_TAG_subprogram58# CHECK: DW_AT_low_pc [DW_FORM_addrx] (indexed (00000001) address = 0x0000000000000042)59# CHECK: DW_AT_high_pc [DW_FORM_data4] (0x00000006)60 61# CHECK-DAG: .debug_line contents:62# CHECK: Address Line63# CHECK-NEXT: --------------64# CHECK-NEXT: DW_LNE_set_address (0xffffffff)65# CHECK-NEXT: DW_LNS_copy66# CHECK-NEXT: DW_LNS_advance_pc (addr += 1, op-index += 0)67# CHECK-NEXT: DW_LNE_end_sequence68# CHECK-NEXT: DW_LNE_set_address (0x00000042)69# CHECK-NEXT: DW_LNS_copy70# CHECK-NEXT: 0x0000000000000042 171# CHECK-NEXT: DW_LNS_advance_pc (addr += 1, op-index += 0)72# CHECK-NEXT: DW_LNE_end_sequence73# CHECK: Address Line74# CHECK-NEXT: --------------75# CHECK-NEXT: DW_LNE_set_address (0xffffffffffffffff)76# CHECK-NEXT: DW_LNS_copy77# CHECK-NEXT: DW_LNS_advance_pc (addr += 1, op-index += 0)78# CHECK-NEXT: DW_LNE_end_sequence79# CHECK-NEXT: DW_LNE_set_address (0x0000000000000042)80# CHECK-NEXT: DW_LNS_copy81# CHECK-NEXT: 0x0000000000000042 182# CHECK-NEXT: DW_LNS_advance_pc (addr += 1, op-index += 0)83# CHECK-NEXT: DW_LNE_end_sequence84 85# Dumping of the debug_addr, ranges, and rnglists sections don't do anything86# different with tombstoned addresses, but dump them just for87# documentation/comparison with the tombstone-filtered renderings in the88# debug_info section above89 90# CHECK-DAG: .debug_addr contents:91# CHECK-NEXT: addr_size = 0x0492# CHECK-NEXT: Addrs: [93# CHECK-NEXT: 0xffffffff94# CHECK-NEXT: 0x0000004295# CHECK-NEXT: ]96# CHECK-NEXT: addr_size = 0x0897# CHECK-NEXT: Addrs: [98# CHECK-NEXT: 0xffffffffffffffff99# CHECK-NEXT: 0x0000000000000042100# CHECK-NEXT: ]101 102# CHECK-DAG: .debug_ranges contents:103# CHECK-NEXT: fffffffe fffffffe104# CHECK-NEXT: 00000042 00000048105# CHECK-NEXT: <End of list>106# FIXME: Would be nice if we didn't assume all the contributions were of the107# same address size, instead dumping them based on the address size of108# the unit that references them. Maybe optimistically guessing at any109# unreferenced chunks. (this would be more like libdwarf/dwarfdump).110# But for now, these 64bit address ranges are mangled/being rendered111# here as though they were a 32 bit address range.112# CHECK-NEXT: fffffffe ffffffff113# CHECK-NEXT: fffffffe ffffffff114# CHECK-NEXT: 00000042 00000000115# CHECK-NEXT: 00000048 00000000116# CHECK-NEXT: <End of list>117 118# CHECK-DAG: .debug_rnglists contents:119# CHECK-NEXT: addr_size = 0x04120# CHECK-NEXT: ranges:121# CHECK-NEXT: [DW_RLE_start_length ]: 0xffffffff, 0x00000006122# CHECK-NEXT: [DW_RLE_start_length ]: 0x00000042, 0x00000006123# CHECK-NEXT: [DW_RLE_startx_length]: 0x00000000, 0x00000006124# CHECK-NEXT: [DW_RLE_startx_length]: 0x00000001, 0x00000006125# CHECK-NEXT: [DW_RLE_start_end ]: [0xffffffff, 0xffffffff)126# CHECK-NEXT: [DW_RLE_start_end ]: [0x00000042, 0x00000048)127# CHECK-NEXT: [DW_RLE_startx_endx ]: 0x00000000, 0x00000000128# CHECK-NEXT: [DW_RLE_startx_endx ]: 0x00000001, 0x00000001129# CHECK-NEXT: [DW_RLE_base_address ]: 0x00000040130# CHECK-NEXT: [DW_RLE_offset_pair ]: 0x00000002, 0x00000008 => [0x00000042, 0x00000048)131# CHECK-NEXT: [DW_RLE_base_address ]: 0xffffffff132# CHECK-NEXT: [DW_RLE_offset_pair ]: 0x00000002, 0x00000008 => dead code133# CHECK-NEXT: [DW_RLE_base_addressx]: 0x00000000134# FIXME: Don't print "computed" values that aren't really computed/instead135# still refer to the index instead of the resulting address136# CHECK-NEXT: [DW_RLE_offset_pair ]: 0x00000000, 0x00000006 => [0x00000000, 0x00000006)137# CHECK-NEXT: [DW_RLE_base_addressx]: 0x00000001138# CHECK-NEXT: [DW_RLE_offset_pair ]: 0x00000000, 0x00000006 => [0x00000001, 0x00000007)139# CHECK-NEXT: [DW_RLE_end_of_list ]140# CHECK-NEXT: addr_size = 0x08141# CHECK-NEXT: ranges:142# CHECK-NEXT: [DW_RLE_start_length ]: 0xffffffffffffffff, 0x0000000000000006143# CHECK-NEXT: [DW_RLE_start_length ]: 0x0000000000000042, 0x0000000000000006144# CHECK-NEXT: [DW_RLE_startx_length]: 0x0000000000000000, 0x0000000000000006145# CHECK-NEXT: [DW_RLE_startx_length]: 0x0000000000000001, 0x0000000000000006146# CHECK-NEXT: [DW_RLE_start_end ]: [0xffffffffffffffff, 0xffffffffffffffff)147# CHECK-NEXT: [DW_RLE_start_end ]: [0x0000000000000042, 0x0000000000000048)148# CHECK-NEXT: [DW_RLE_startx_endx ]: 0x0000000000000000, 0x0000000000000000149# CHECK-NEXT: [DW_RLE_startx_endx ]: 0x0000000000000001, 0x0000000000000001150# CHECK-NEXT: [DW_RLE_base_address ]: 0x0000000000000040151# CHECK-NEXT: [DW_RLE_offset_pair ]: 0x0000000000000002, 0x0000000000000008 => [0x0000000000000042, 0x0000000000000048)152# CHECK-NEXT: [DW_RLE_base_address ]: 0xffffffffffffffff153# CHECK-NEXT: [DW_RLE_offset_pair ]: 0x0000000000000002, 0x0000000000000008 => dead code154# CHECK-NEXT: [DW_RLE_base_addressx]: 0x0000000000000000155# CHECK-NEXT: [DW_RLE_offset_pair ]: 0x0000000000000000, 0x0000000000000006 => [0x0000000000000000, 0x0000000000000006)156# CHECK-NEXT: [DW_RLE_base_addressx]: 0x0000000000000001157# CHECK-NEXT: [DW_RLE_offset_pair ]: 0x0000000000000000, 0x0000000000000006 => [0x0000000000000001, 0x0000000000000007)158# CHECK-NEXT: [DW_RLE_end_of_list ]159 160 .section .debug_abbrev,"",@progbits161.Ldebug_abbrev4:162 .byte 1 # Abbreviation Code163 .byte 17 # DW_TAG_compile_unit164 .byte 1 # DW_CHILDREN_yes165 .byte 85 # DW_AT_ranges166 .byte 23 # DW_FORM_sec_offset167 .byte 0 # EOM(1)168 .byte 0 # EOM(2)169 .byte 2 # Abbreviation Code170 .byte 46 # DW_TAG_subprogram171 .byte 0 # DW_CHILDREN_no172 .byte 17 # DW_AT_low_pc173 .byte 1 # DW_FORM_addr174 .byte 18 # DW_AT_high_pc175 .byte 6 # DW_FORM_data4176 .byte 0 # EOM(1)177 .byte 0 # EOM(2)178 .byte 0 # EOM(3)179.Ldebug_abbrev5:180 .byte 1 # Abbreviation Code181 .byte 17 # DW_TAG_compile_unit182 .byte 1 # DW_CHILDREN_yes183 .byte 115 # DW_AT_addr_base184 .byte 23 # DW_FORM_sec_offset185 .byte 85 # DW_AT_ranges186 .byte 23 # DW_FORM_sec_offset187 .byte 0 # EOM(1)188 .byte 0 # EOM(2)189 .byte 2 # Abbreviation Code190 .byte 46 # DW_TAG_subprogram191 .byte 0 # DW_CHILDREN_no192 .byte 17 # DW_AT_low_pc193 .byte 27 # DW_FORM_addrx194 .byte 18 # DW_AT_high_pc195 .byte 6 # DW_FORM_data4196 .byte 0 # EOM(1)197 .byte 0 # EOM(2)198 .byte 0 # EOM(3)199 200 .section .debug_info,"",@progbits201 .long .Ldebug_info4_end-.Ldebug_info4_begin # Length of Unit202.Ldebug_info4_begin:203 .short 4 # DWARF version number204 .long .Ldebug_abbrev4 # Offset Into Abbrev. Section205 .byte 4 # Address Size (in bytes)206 .byte 1 # Abbrev [1] 0xb:0x4a DW_TAG_compile_unit207 .long .Ldebug_ranges # DW_AT_ranges208 .byte 2 # Abbrev [2] 0x2a:0x15 DW_TAG_subprogram209 .long 0xffffffff # DW_AT_low_pc210 .long 0x6 # DW_AT_high_pc211 .byte 2 # Abbrev [2] 0x3f:0x15 DW_TAG_subprogram212 .long 0x42 # DW_AT_low_pc213 .long 0x6 # DW_AT_high_pc214 .byte 0 # End Of Children Mark215.Ldebug_info4_end:216 .long .Ldebug_info5_end-.Ldebug_info5_begin # Length of Unit217.Ldebug_info5_begin:218 .short 5 # DWARF version number219 .byte 1 # DWARF Unit Type220 .byte 4 # Address Size (in bytes)221 .long .Ldebug_abbrev5 # Offset Into Abbrev. Section222 .byte 1 # Abbrev [1] 0xb:0x4a DW_TAG_compile_unit223 .long .Ldebug_addr_base # DW_AT_addr_base224 .long .Ldebug_rnglists # DW_AT_ranges225 .byte 2 # Abbrev [2] 0x2a:0x15 DW_TAG_subprogram226 .uleb128 0 # DW_AT_low_pc227 .long 0x6 # DW_AT_high_pc228 .byte 2 # Abbrev [2] 0x3f:0x15 DW_TAG_subprogram229 .uleb128 1 # DW_AT_low_pc230 .long 0x6 # DW_AT_high_pc231 .byte 0 # End Of Children Mark232.Ldebug_info5_end:233 .long .Ldebug_info4_64_end-.Ldebug_info4_64_begin # Length of Unit234.Ldebug_info4_64_begin:235 .short 4 # DWARF version number236 .long .Ldebug_abbrev4 # Offset Into Abbrev. Section237 .byte 8 # Address Size (in bytes)238 .byte 1 # Abbrev [1] 0xb:0x4a DW_TAG_compile_unit239 .long .Ldebug_ranges_64 # DW_AT_ranges240 .byte 2 # Abbrev [2] 0x2a:0x15 DW_TAG_subprogram241 .quad 0xffffffffffffffff # DW_AT_low_pc242 .long 0x6 # DW_AT_high_pc243 .byte 2 # Abbrev [2] 0x3f:0x15 DW_TAG_subprogram244 .quad 0x42 # DW_AT_low_pc245 .long 0x6 # DW_AT_high_pc246 .byte 0 # End Of Children Mark247.Ldebug_info4_64_end:248 .long .Ldebug_info5_64_end-.Ldebug_info5_64_begin # Length of Unit249.Ldebug_info5_64_begin:250 .short 5 # DWARF version number251 .byte 1 # DWARF Unit Type252 .byte 8 # Address Size (in bytes)253 .long .Ldebug_abbrev5 # Offset Into Abbrev. Section254 .byte 1 # Abbrev [1] 0xb:0x4a DW_TAG_compile_unit255 .long .Ldebug_addr_64_base # DW_AT_addr_base256 .long .Ldebug_rnglists_64 # DW_AT_ranges257 .byte 2 # Abbrev [2] 0x2a:0x15 DW_TAG_subprogram258 .uleb128 0 # DW_AT_low_pc259 .long 0x6 # DW_AT_high_pc260 .byte 2 # Abbrev [2] 0x3f:0x15 DW_TAG_subprogram261 .uleb128 1 # DW_AT_low_pc262 .long 0x6 # DW_AT_high_pc263 .byte 0 # End Of Children Mark264.Ldebug_info5_64_end:265 266 .section .debug_ranges,"",@progbits267.Ldebug_ranges:268 .long 0xfffffffe269 .long 0xfffffffe270 .long 0x42271 .long 0x48272 .long 0273 .long 0274.Ldebug_ranges_64:275 .quad 0xfffffffffffffffe276 .quad 0xfffffffffffffffe277 .quad 0x42278 .quad 0x48279 .quad 0280 .quad 0281 282 .section .debug_rnglists,"",@progbits283 .long .Ldebug_rnglists_end-.Ldebug_rnglists_begin # Length284.Ldebug_rnglists_begin:285 .short 5 # Version286 .byte 4 # Address size287 .byte 0 # Segment selector size288 .long 0 # Offset entry count289.Ldebug_rnglists:290 .byte 7 # DW_RLE_start_length291 .long 0xffffffff # start address292 .uleb128 0x6 # length293 .byte 7 # DW_RLE_start_length294 .long 0x42 # start address295 .uleb128 0x6 # length296 .byte 3 # DW_RLE_startx_length297 .uleb128 0 # start index298 .uleb128 0x6 # length299 .byte 3 # DW_RLE_startx_length300 .uleb128 1 # start index301 .uleb128 0x6 # length302 .byte 6 # DW_RLE_start_end303 .long 0xffffffff # start address304 .long 0xffffffff # end address305 .byte 6 # DW_RLE_start_end306 .long 0x42 # start address307 .long 0x48 # length308 .byte 2 # DW_RLE_startx_endx309 .uleb128 0 # start index310 .uleb128 0 # end index311 .byte 2 # DW_RLE_startx_endx312 .uleb128 1 # start index313 .uleb128 1 # end index314 .byte 5 # DW_RLE_base_address315 .long 0x40 # address316 .byte 4 # DW_RLE_offset_pair317 .uleb128 2 # start offset318 .uleb128 8 # end offset319 .byte 5 # DW_RLE_base_address320 .long 0xffffffff # address321 .byte 4 # DW_RLE_offset_pair322 .uleb128 2 # start offset323 .uleb128 8 # end offset324 .byte 1 # DW_RLE_base_addressx325 .uleb128 0 # address326 .byte 4 # DW_RLE_offset_pair327 .uleb128 0 # start offset328 .uleb128 6 # end offset329 .byte 1 # DW_RLE_base_addressx330 .uleb128 1 # address331 .byte 4 # DW_RLE_offset_pair332 .uleb128 0 # start offset333 .uleb128 6 # end offset334 .byte 0 # DW_RLE_end_of_list335.Ldebug_rnglists_end:336 .long .Ldebug_rnglists_64_end-.Ldebug_rnglists_64_begin # Length337.Ldebug_rnglists_64_begin:338 .short 5 # Version339 .byte 8 # Address size340 .byte 0 # Segment selector size341 .long 0 # Offset entry count342.Ldebug_rnglists_64:343 .byte 7 # DW_RLE_start_length344 .quad 0xffffffffffffffff # start address345 .uleb128 0x6 # length346 .byte 7 # DW_RLE_start_length347 .quad 0x42 # start address348 .uleb128 0x6 # length349 .byte 3 # DW_RLE_startx_length350 .uleb128 0 # start index351 .uleb128 0x6 # length352 .byte 3 # DW_RLE_startx_length353 .uleb128 1 # start index354 .uleb128 0x6 # length355 .byte 6 # DW_RLE_start_end356 .quad 0xffffffffffffffff # start address357 .quad 0xffffffffffffffff # end address358 .byte 6 # DW_RLE_start_end359 .quad 0x42 # start address360 .quad 0x48 # length361 .byte 2 # DW_RLE_startx_endx362 .uleb128 0 # start index363 .uleb128 0 # end index364 .byte 2 # DW_RLE_startx_endx365 .uleb128 1 # start index366 .uleb128 1 # end index367 .byte 5 # DW_RLE_base_address368 .quad 0x40 # address369 .byte 4 # DW_RLE_offset_pair370 .uleb128 2 # start offset371 .uleb128 8 # end offset372 .byte 5 # DW_RLE_base_address373 .quad 0xffffffffffffffff # address374 .byte 4 # DW_RLE_offset_pair375 .uleb128 2 # start offset376 .uleb128 8 # end offset377 .byte 1 # DW_RLE_base_addressx378 .uleb128 0 # address379 .byte 4 # DW_RLE_offset_pair380 .uleb128 0 # start offset381 .uleb128 6 # end offset382 .byte 1 # DW_RLE_base_addressx383 .uleb128 1 # address384 .byte 4 # DW_RLE_offset_pair385 .uleb128 0 # start offset386 .uleb128 6 # end offset387 .byte 0 # DW_RLE_end_of_list388.Ldebug_rnglists_64_end:389 390 .section .debug_addr,"",@progbits391 .long .Ldebug_addr_end-.Ldebug_addr_begin # Length of contribution392.Ldebug_addr_begin:393 .short 5 # DWARF version number394 .byte 4 # Address size395 .byte 0 # Segment selector size396.Ldebug_addr_base:397 .long 0xffffffff398 .long 0x42399.Ldebug_addr_end:400 .long .Ldebug_addr_64_end-.Ldebug_addr_64_begin # Length of contribution401.Ldebug_addr_64_begin:402 .short 5 # DWARF version number403 .byte 8 # Address size404 .byte 0 # Segment selector size405.Ldebug_addr_64_base:406 .quad 0xffffffffffffffff407 .quad 0x42408.Ldebug_addr_64_end:409 410 .section .debug_line,"",@progbits411.Ldebug_line5:412 .long .Ldebug_line5_end-.Ldebug_line5_begin # Length of Unit (DWARF-32 format)413.Ldebug_line5_begin:414 .short 5 # DWARF version number415 .byte 4 # Address Size416 .byte 0 # Segment Selector Size417 .long .Ldebug_line5_header_end-.Ldebug_line5_header_begin # Length of Prologue418.Ldebug_line5_header_begin:419 .byte 1 # Minimum Instruction Length420 .byte 1 # Maximum Operations per Instruction421 .byte 1 # Default is_stmt422 .byte -5 # Line Base423 .byte 14 # Line Range424 .byte 13 # Opcode Base425 .byte 0 # Standard Opcode Lengths426 .byte 1427 .byte 1428 .byte 1429 .byte 1430 .byte 0431 .byte 0432 .byte 0433 .byte 1434 .byte 0435 .byte 0436 .byte 1437 # Directory table format438 .byte 1 # One element per directory entry439 .byte 1 # DW_LNCT_path440 .byte 0x08 # DW_FORM_string441 # Directory table entries442 .byte 1 # Two directory entries443 .asciz "dir1"444 # File table format445 .byte 2 # Four elements per file entry446 .byte 2 # DW_LNCT_directory_index447 .byte 0x0b # DW_FORM_data1448 .byte 1 # DW_LNCT_path449 .byte 0x08 # DW_FORM_string450 # File table entries451 .byte 1 # Two file entries452 .byte 1453 .asciz "file1"454.Ldebug_line5_header_end:455 .byte 0 # Extended opcode456 .byte 5 # Size 5457 .byte 2 # Opcode: DW_LNE_set_address458 .long 0xffffffff # address459 .byte 1 # DW_LNS_copy460 .byte 2 # DW_LNS_advance_pc461 .uleb128 1 # instruction increment462 .byte 0 # Extended opcode463 .byte 1 # Size 1464 .byte 1 # Opcode: DW_LNE_end_sequence465 .byte 0 # Extended opcode466 .byte 5 # Size 5467 .byte 2 # Opcode: DW_LNE_set_address468 .long 0x42 # address469 .byte 1 # DW_LNS_copy470 .byte 2 # DW_LNS_advance_pc471 .uleb128 1 # instruction increment472 .byte 0 # Extended opcode473 .byte 1 # Size 1474 .byte 1 # Opcode: DW_LNE_end_sequence475.Ldebug_line5_end:476 477.Ldebug_line5_64:478 .long .Ldebug_line5_64_end-.Ldebug_line5_64_begin # Length of Unit (DWARF-32 format)479.Ldebug_line5_64_begin:480 .short 5 # DWARF version number481 .byte 8 # Address Size482 .byte 0 # Segment Selector Size483 .long .Ldebug_line5_64_header_end-.Ldebug_line5_64_header_begin # Length of Prologue484.Ldebug_line5_64_header_begin:485 .byte 1 # Minimum Instruction Length486 .byte 1 # Maximum Operations per Instruction487 .byte 1 # Default is_stmt488 .byte -5 # Line Base489 .byte 14 # Line Range490 .byte 13 # Opcode Base491 .byte 0 # Standard Opcode Lengths492 .byte 1493 .byte 1494 .byte 1495 .byte 1496 .byte 0497 .byte 0498 .byte 0499 .byte 1500 .byte 0501 .byte 0502 .byte 1503 # Directory table format504 .byte 1 # One element per directory entry505 .byte 1 # DW_LNCT_path506 .byte 0x08 # DW_FORM_string507 # Directory table entries508 .byte 1 # Two directory entries509 .asciz "dir1"510 # File table format511 .byte 2 # Four elements per file entry512 .byte 2 # DW_LNCT_directory_index513 .byte 0x0b # DW_FORM_data1514 .byte 1 # DW_LNCT_path515 .byte 0x08 # DW_FORM_string516 # File table entries517 .byte 1 # Two file entries518 .byte 1519 .asciz "file1"520.Ldebug_line5_64_header_end:521 .byte 0 # Extended opcode522 .byte 9 # Size 9523 .byte 2 # Opcode: DW_LNE_set_address524 .quad 0xffffffffffffffff # address525 .byte 1 # DW_LNS_copy526 .byte 2 # DW_LNS_advance_pc527 .uleb128 1 # instruction increment528 .byte 0 # Extended opcode529 .byte 1 # Size 1530 .byte 1 # Opcode: DW_LNE_end_sequence531 .byte 0 # Extended opcode532 .byte 9 # Size 9533 .byte 2 # Opcode: DW_LNE_set_address534 .quad 0x42 # address535 .byte 1 # DW_LNS_copy536 .byte 2 # DW_LNS_advance_pc537 .uleb128 1 # instruction increment538 .byte 0 # Extended opcode539 .byte 1 # Size 1540 .byte 1 # Opcode: DW_LNE_end_sequence541.Ldebug_line5_64_end:542 543