# This assembly file was generated from the following trivial C code: # $ cat scattered.c # int bar = 42; # $ clang -S -arch armv7 -g scattered.c # $ clang -c -o 1.o scattered.s # # Then I edited the debug info bellow to change the DW_AT_location of the bar # variable from '.long _bar' to '.long _bar + 16' in order to generate a # scattered reloc (I do not think LLVM will generate scattered relocs in # debug info by itself). .section __TEXT,__text,regular,pure_instructions .ios_version_min 5, 0 .syntax unified .file 1 "scattered.c" .section __DATA,__data .globl _bar @ @bar .p2align 2 _bar: .long 42 @ 0x2a .section __DWARF,__debug_str,regular,debug Linfo_string: .asciz "clang version 3.9.0 (trunk 259311)" @ string offset=0 .asciz "scattered.c" @ string offset=35 .asciz "/tmp" @ string offset=47 .asciz "bar" @ string offset=52 .asciz "int" @ string offset=56 .section __DWARF,__debug_loc,regular,debug Lsection_debug_loc: .section __DWARF,__debug_abbrev,regular,debug Lsection_abbrev: .byte 1 @ Abbreviation Code .byte 17 @ DW_TAG_compile_unit .byte 1 @ DW_CHILDREN_yes .byte 37 @ DW_AT_producer .byte 14 @ DW_FORM_strp .byte 19 @ DW_AT_language .byte 5 @ DW_FORM_data2 .byte 3 @ DW_AT_name .byte 14 @ DW_FORM_strp .byte 16 @ DW_AT_stmt_list .byte 6 @ DW_FORM_data4 .byte 27 @ DW_AT_comp_dir .byte 14 @ DW_FORM_strp .byte 0 @ EOM(1) .byte 0 @ EOM(2) .byte 2 @ Abbreviation Code .byte 52 @ DW_TAG_variable .byte 0 @ DW_CHILDREN_no .byte 3 @ DW_AT_name .byte 14 @ DW_FORM_strp .byte 73 @ DW_AT_type .byte 19 @ DW_FORM_ref4 .byte 63 @ DW_AT_external .byte 12 @ DW_FORM_flag .byte 58 @ DW_AT_decl_file .byte 11 @ DW_FORM_data1 .byte 59 @ DW_AT_decl_line .byte 11 @ DW_FORM_data1 .byte 2 @ DW_AT_location .byte 10 @ DW_FORM_block1 .byte 0 @ EOM(1) .byte 0 @ EOM(2) .byte 3 @ Abbreviation Code .byte 36 @ DW_TAG_base_type .byte 0 @ DW_CHILDREN_no .byte 3 @ DW_AT_name .byte 14 @ DW_FORM_strp .byte 62 @ DW_AT_encoding .byte 11 @ DW_FORM_data1 .byte 11 @ DW_AT_byte_size .byte 11 @ DW_FORM_data1 .byte 0 @ EOM(1) .byte 0 @ EOM(2) .byte 0 @ EOM(3) .section __DWARF,__debug_info,regular,debug Lsection_info: Lcu_begin0: .long 52 @ Length of Unit .short 2 @ DWARF version number Lset0 = Lsection_abbrev-Lsection_abbrev @ Offset Into Abbrev. Section .long Lset0 .byte 4 @ Address Size (in bytes) .byte 1 @ Abbrev [1] 0xb:0x2d DW_TAG_compile_unit .long 0 @ DW_AT_producer .short 12 @ DW_AT_language .long 35 @ DW_AT_name Lset1 = Lline_table_start0-Lsection_line @ DW_AT_stmt_list .long Lset1 .long 47 @ DW_AT_comp_dir .byte 2 @ Abbrev [2] 0x1e:0x12 DW_TAG_variable .long 52 @ DW_AT_name .long 48 @ DW_AT_type .byte 1 @ DW_AT_external .byte 1 @ DW_AT_decl_file .byte 1 @ DW_AT_decl_line .byte 5 @ DW_AT_location .byte 3 .long _bar + 16 .byte 3 @ Abbrev [3] 0x30:0x7 DW_TAG_base_type .long 56 @ DW_AT_name .byte 5 @ DW_AT_encoding .byte 4 @ DW_AT_byte_size .byte 0 @ End Of Children Mark .section __DWARF,__debug_ranges,regular,debug Ldebug_range: .section __DWARF,__debug_macinfo,regular,debug .byte 0 @ End Of Macro List Mark .section __DWARF,__apple_names,regular,debug Lnames_begin: .long 1212240712 @ Header Magic .short 1 @ Header Version .short 0 @ Header Hash Function .long 1 @ Header Bucket Count .long 1 @ Header Hash Count .long 12 @ Header Data Length .long 0 @ HeaderData Die Offset Base .long 1 @ HeaderData Atom Count .short 1 @ DW_ATOM_die_offset .short 6 @ DW_FORM_data4 .long 0 @ Bucket 0 .long 193487034 @ Hash in Bucket 0 .long LNames0-Lnames_begin @ Offset in Bucket 0 LNames0: .long 52 @ bar .long 1 @ Num DIEs .long 30 .long 0 .section __DWARF,__apple_objc,regular,debug Lobjc_begin: .long 1212240712 @ Header Magic .short 1 @ Header Version .short 0 @ Header Hash Function .long 1 @ Header Bucket Count .long 0 @ Header Hash Count .long 12 @ Header Data Length .long 0 @ HeaderData Die Offset Base .long 1 @ HeaderData Atom Count .short 1 @ DW_ATOM_die_offset .short 6 @ DW_FORM_data4 .long -1 @ Bucket 0 .section __DWARF,__apple_namespac,regular,debug Lnamespac_begin: .long 1212240712 @ Header Magic .short 1 @ Header Version .short 0 @ Header Hash Function .long 1 @ Header Bucket Count .long 0 @ Header Hash Count .long 12 @ Header Data Length .long 0 @ HeaderData Die Offset Base .long 1 @ HeaderData Atom Count .short 1 @ DW_ATOM_die_offset .short 6 @ DW_FORM_data4 .long -1 @ Bucket 0 .section __DWARF,__apple_types,regular,debug Ltypes_begin: .long 1212240712 @ Header Magic .short 1 @ Header Version .short 0 @ Header Hash Function .long 1 @ Header Bucket Count .long 1 @ Header Hash Count .long 20 @ Header Data Length .long 0 @ HeaderData Die Offset Base .long 3 @ HeaderData Atom Count .short 1 @ DW_ATOM_die_offset .short 6 @ DW_FORM_data4 .short 3 @ DW_ATOM_die_tag .short 5 @ DW_FORM_data2 .short 4 @ DW_ATOM_type_flags .short 11 @ DW_FORM_data1 .long 0 @ Bucket 0 .long 193495088 @ Hash in Bucket 0 .long Ltypes0-Ltypes_begin @ Offset in Bucket 0 Ltypes0: .long 56 @ int .long 1 @ Num DIEs .long 48 .short 36 .byte 0 .long 0 .subsections_via_symbols .section __DWARF,__debug_line,regular,debug Lsection_line: Lline_table_start0: