217 lines · plain
1# Note: This file is compiled from the following code, for 2# the purpose of creating an overflowed dwo section.3# After being compiled from source, section `.debug_info.dwo`4# is changed to have length (2^32 - 30) Bytes, and added 5# padding with `.fill` directive, so it is likely to 6# overflow when packed with other files.7# 8# clang -g -S -gsplit-dwarf -gdwarf-5 hello.c9#10# #include <stdio.h>11# void hello() {12# printf("hello\n");13# }14 15 .text16 .file "hello.c"17 .globl hello # -- Begin function hello18 .p2align 4, 0x9019 .type hello,@function20hello: # @hello21.Lfunc_begin0:22 .file 0 "/xxxx/xxxxxxxxxx/xxxxxxxx/hello" "hello.c" md5 0x0b447232502f439981a2fe9f11255f4223 .loc 0 3 0 # hello.c:3:024 .cfi_startproc25# %bb.0: # %entry26 pushq %rbp27 .cfi_def_cfa_offset 1628 .cfi_offset %rbp, -1629 movq %rsp, %rbp30 .cfi_def_cfa_register %rbp31.Ltmp0:32 .loc 0 4 5 prologue_end # hello.c:4:533 movabsq $.L.str, %rdi34 movb $0, %al35 callq printf36 .loc 0 5 1 # hello.c:5:137 popq %rbp38 .cfi_def_cfa %rsp, 839 retq40.Ltmp1:41.Lfunc_end0:42 .size hello, .Lfunc_end0-hello43 .cfi_endproc44 # -- End function45 .type .L.str,@object # @.str46 .section .rodata.str1.1,"aMS",@progbits,147.L.str:48 .asciz "hello\n"49 .size .L.str, 750 51 .section .debug_abbrev,"",@progbits52 .byte 1 # Abbreviation Code53 .byte 74 # DW_TAG_skeleton_unit54 .byte 0 # DW_CHILDREN_no55 .byte 16 # DW_AT_stmt_list56 .byte 23 # DW_FORM_sec_offset57 .byte 114 # DW_AT_str_offsets_base58 .byte 23 # DW_FORM_sec_offset59 .byte 27 # DW_AT_comp_dir60 .byte 37 # DW_FORM_strx161 .ascii "\264B" # DW_AT_GNU_pubnames62 .byte 25 # DW_FORM_flag_present63 .byte 118 # DW_AT_dwo_name64 .byte 37 # DW_FORM_strx165 .byte 17 # DW_AT_low_pc66 .byte 27 # DW_FORM_addrx67 .byte 18 # DW_AT_high_pc68 .byte 6 # DW_FORM_data469 .byte 115 # DW_AT_addr_base70 .byte 23 # DW_FORM_sec_offset71 .byte 0 # EOM(1)72 .byte 0 # EOM(2)73 .byte 0 # EOM(3)74 .section .debug_info,"",@progbits75.Lcu_begin0:76 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit77.Ldebug_info_start0:78 .short 5 # DWARF version number79 .byte 4 # DWARF Unit Type80 .byte 8 # Address Size (in bytes)81 .long .debug_abbrev # Offset Into Abbrev. Section82 .quad -9495401235018046283 .byte 1 # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit84 .long .Lline_table_start0 # DW_AT_stmt_list85 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base86 .byte 0 # DW_AT_comp_dir87 # DW_AT_GNU_pubnames88 .byte 1 # DW_AT_dwo_name89 .byte 0 # DW_AT_low_pc90 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc91 .long .Laddr_table_base0 # DW_AT_addr_base92.Ldebug_info_end0:93 .section .debug_str_offsets,"",@progbits94 .long 1295 .short 596 .short 097.Lstr_offsets_base0:98 .section .debug_str,"MS",@progbits,199.Lskel_string0:100 .asciz "/xxxx/xxxxxxxxxx/xxxxxxxx/hello" # string offset=0101.Lskel_string1:102 .asciz "hello.dwo" # string offset=32103 .section .debug_str_offsets,"",@progbits104 .long .Lskel_string0105 .long .Lskel_string1106 .section .debug_str_offsets.dwo,"e",@progbits107 .long 20108 .short 5109 .short 0110 .section .debug_str.dwo,"eMS",@progbits,1111.Linfo_string0:112 .asciz "hello" # string offset=0113.Linfo_string1:114 .asciz "clang version 11.1.0 (https://github.com/llvm/llvm-project.git 1a0dc1e010bf5c8034bd4a53340fc0dc3e90549a)" # string offset=6115.Linfo_string2:116 .asciz "hello.c" # string offset=111117.Linfo_string3:118 .asciz "hello.dwo" # string offset=119119 .section .debug_str_offsets.dwo,"e",@progbits120 .long 0121 .long 6122 .long 111123 .long 119124 .section .debug_info.dwo,"e",@progbits125 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit126.Ldebug_info_dwo_start0:127 .short 5 # DWARF version number128 .byte 5 # DWARF Unit Type129 .byte 8 # Address Size (in bytes)130 .long 0 # Offset Into Abbrev. Section131 .quad -94954012350180462132 .byte 1 # Abbrev [1] 0x14:0x12 DW_TAG_compile_unit133 .byte 1 # DW_AT_producer134 .short 12 # DW_AT_language135 .byte 2 # DW_AT_name136 .byte 3 # DW_AT_dwo_name137 .byte 2 # Abbrev [2] 0x1a:0xb DW_TAG_subprogram138 .byte 0 # DW_AT_low_pc139 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc140 .byte 1 # DW_AT_frame_base141 .byte 86142 .byte 0 # DW_AT_name143 .byte 0 # DW_AT_decl_file144 .byte 3 # DW_AT_decl_line145 # DW_AT_external146 .byte 0 # End Of Children Mark147 .fill 4294967233148.Ldebug_info_dwo_end0:149 .section .debug_abbrev.dwo,"e",@progbits150 .byte 1 # Abbreviation Code151 .byte 17 # DW_TAG_compile_unit152 .byte 1 # DW_CHILDREN_yes153 .byte 37 # DW_AT_producer154 .byte 37 # DW_FORM_strx1155 .byte 19 # DW_AT_language156 .byte 5 # DW_FORM_data2157 .byte 3 # DW_AT_name158 .byte 37 # DW_FORM_strx1159 .byte 118 # DW_AT_dwo_name160 .byte 37 # DW_FORM_strx1161 .byte 0 # EOM(1)162 .byte 0 # EOM(2)163 .byte 2 # Abbreviation Code164 .byte 46 # DW_TAG_subprogram165 .byte 0 # DW_CHILDREN_no166 .byte 17 # DW_AT_low_pc167 .byte 27 # DW_FORM_addrx168 .byte 18 # DW_AT_high_pc169 .byte 6 # DW_FORM_data4170 .byte 64 # DW_AT_frame_base171 .byte 24 # DW_FORM_exprloc172 .byte 3 # DW_AT_name173 .byte 37 # DW_FORM_strx1174 .byte 58 # DW_AT_decl_file175 .byte 11 # DW_FORM_data1176 .byte 59 # DW_AT_decl_line177 .byte 11 # DW_FORM_data1178 .byte 63 # DW_AT_external179 .byte 25 # DW_FORM_flag_present180 .byte 0 # EOM(1)181 .byte 0 # EOM(2)182 .byte 0 # EOM(3)183 .section .debug_addr,"",@progbits184 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution185.Ldebug_addr_start0:186 .short 5 # DWARF version number187 .byte 8 # Address size188 .byte 0 # Segment selector size189.Laddr_table_base0:190 .quad .Lfunc_begin0191.Ldebug_addr_end0:192 .section .debug_gnu_pubnames,"",@progbits193 .long .LpubNames_end0-.LpubNames_begin0 # Length of Public Names Info194.LpubNames_begin0:195 .short 2 # DWARF Version196 .long .Lcu_begin0 # Offset of Compilation Unit Info197 .long 40 # Compilation Unit Length198 .long 26 # DIE offset199 .byte 48 # Attributes: FUNCTION, EXTERNAL200 .asciz "hello" # External Name201 .long 0 # End Mark202.LpubNames_end0:203 .section .debug_gnu_pubtypes,"",@progbits204 .long .LpubTypes_end0-.LpubTypes_begin0 # Length of Public Types Info205.LpubTypes_begin0:206 .short 2 # DWARF Version207 .long .Lcu_begin0 # Offset of Compilation Unit Info208 .long 40 # Compilation Unit Length209 .long 0 # End Mark210.LpubTypes_end0:211 .ident "clang version 11.1.0 (https://github.com/llvm/llvm-project.git 1a0dc1e010bf5c8034bd4a53340fc0dc3e90549a)"212 .section ".note.GNU-stack","",@progbits213 .addrsig214 .addrsig_sym printf215 .section .debug_line,"",@progbits216.Lline_table_start0:217