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.
8 # clang -g -S -gsplit-dwarf -gdwarf-5 hello.c
17 .globl hello # -- Begin function hello
22 .file 0 "/xxxx/xxxxxxxxxx/xxxxxxxx/hello" "hello.c" md5 0x0b447232502f439981a2fe9f11255f42
23 .loc 0 3 0 # hello.c:3:0
27 .cfi_def_cfa_offset 16
30 .cfi_def_cfa_register %rbp
32 .loc 0 4 5 prologue_end # hello.c:4:5
36 .loc 0 5 1 # hello.c:5:1
42 .size hello, .Lfunc_end0-hello
45 .type .L.str,@object # @.str
46 .section .rodata.str1.1,"aMS",@progbits,1
51 .section .debug_abbrev,"",@progbits
52 .byte 1 # Abbreviation Code
53 .byte 74 # DW_TAG_skeleton_unit
54 .byte 0 # DW_CHILDREN_no
55 .byte 16 # DW_AT_stmt_list
56 .byte 23 # DW_FORM_sec_offset
57 .byte 114 # DW_AT_str_offsets_base
58 .byte 23 # DW_FORM_sec_offset
59 .byte 27 # DW_AT_comp_dir
60 .byte 37 # DW_FORM_strx1
61 .ascii "\264B" # DW_AT_GNU_pubnames
62 .byte 25 # DW_FORM_flag_present
63 .byte 118 # DW_AT_dwo_name
64 .byte 37 # DW_FORM_strx1
65 .byte 17 # DW_AT_low_pc
66 .byte 27 # DW_FORM_addrx
67 .byte 18 # DW_AT_high_pc
68 .byte 6 # DW_FORM_data4
69 .byte 115 # DW_AT_addr_base
70 .byte 23 # DW_FORM_sec_offset
74 .section .debug_info,"",@progbits
76 .long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
78 .short 5 # DWARF version number
79 .byte 4 # DWARF Unit Type
80 .byte 8 # Address Size (in bytes)
81 .long .debug_abbrev # Offset Into Abbrev. Section
82 .quad -94954012350180462
83 .byte 1 # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit
84 .long .Lline_table_start0 # DW_AT_stmt_list
85 .long .Lstr_offsets_base0 # DW_AT_str_offsets_base
86 .byte 0 # DW_AT_comp_dir
88 .byte 1 # DW_AT_dwo_name
89 .byte 0 # DW_AT_low_pc
90 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
91 .long .Laddr_table_base0 # DW_AT_addr_base
93 .section .debug_str_offsets,"",@progbits
98 .section .debug_str,"MS",@progbits,1
100 .asciz "/xxxx/xxxxxxxxxx/xxxxxxxx/hello" # string offset=0
102 .asciz "hello.dwo" # string offset=32
103 .section .debug_str_offsets,"",@progbits
106 .section .debug_str_offsets.dwo,"e",@progbits
110 .section .debug_str.dwo,"eMS",@progbits,1
112 .asciz "hello" # string offset=0
114 .asciz "clang version 11.1.0 (https://github.com/llvm/llvm-project.git 1a0dc1e010bf5c8034bd4a53340fc0dc3e90549a)" # string offset=6
116 .asciz "hello.c" # string offset=111
118 .asciz "hello.dwo" # string offset=119
119 .section .debug_str_offsets.dwo,"e",@progbits
124 .section .debug_info.dwo,"e",@progbits
125 .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
126 .Ldebug_info_dwo_start0:
127 .short 5 # DWARF version number
128 .byte 5 # DWARF Unit Type
129 .byte 8 # Address Size (in bytes)
130 .long 0 # Offset Into Abbrev. Section
131 .quad -94954012350180462
132 .byte 1 # Abbrev [1] 0x14:0x12 DW_TAG_compile_unit
133 .byte 1 # DW_AT_producer
134 .short 12 # DW_AT_language
136 .byte 3 # DW_AT_dwo_name
137 .byte 2 # Abbrev [2] 0x1a:0xb DW_TAG_subprogram
138 .byte 0 # DW_AT_low_pc
139 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
140 .byte 1 # DW_AT_frame_base
143 .byte 0 # DW_AT_decl_file
144 .byte 3 # DW_AT_decl_line
146 .byte 0 # End Of Children Mark
148 .Ldebug_info_dwo_end0:
149 .section .debug_abbrev.dwo,"e",@progbits
150 .byte 1 # Abbreviation Code
151 .byte 17 # DW_TAG_compile_unit
152 .byte 1 # DW_CHILDREN_yes
153 .byte 37 # DW_AT_producer
154 .byte 37 # DW_FORM_strx1
155 .byte 19 # DW_AT_language
156 .byte 5 # DW_FORM_data2
158 .byte 37 # DW_FORM_strx1
159 .byte 118 # DW_AT_dwo_name
160 .byte 37 # DW_FORM_strx1
163 .byte 2 # Abbreviation Code
164 .byte 46 # DW_TAG_subprogram
165 .byte 0 # DW_CHILDREN_no
166 .byte 17 # DW_AT_low_pc
167 .byte 27 # DW_FORM_addrx
168 .byte 18 # DW_AT_high_pc
169 .byte 6 # DW_FORM_data4
170 .byte 64 # DW_AT_frame_base
171 .byte 24 # DW_FORM_exprloc
173 .byte 37 # DW_FORM_strx1
174 .byte 58 # DW_AT_decl_file
175 .byte 11 # DW_FORM_data1
176 .byte 59 # DW_AT_decl_line
177 .byte 11 # DW_FORM_data1
178 .byte 63 # DW_AT_external
179 .byte 25 # DW_FORM_flag_present
183 .section .debug_addr,"",@progbits
184 .long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
186 .short 5 # DWARF version number
187 .byte 8 # Address size
188 .byte 0 # Segment selector size
192 .section .debug_gnu_pubnames,"",@progbits
193 .long .LpubNames_end0-.LpubNames_begin0 # Length of Public Names Info
195 .short 2 # DWARF Version
196 .long .Lcu_begin0 # Offset of Compilation Unit Info
197 .long 40 # Compilation Unit Length
198 .long 26 # DIE offset
199 .byte 48 # Attributes: FUNCTION, EXTERNAL
200 .asciz "hello" # External Name
203 .section .debug_gnu_pubtypes,"",@progbits
204 .long .LpubTypes_end0-.LpubTypes_begin0 # Length of Public Types Info
206 .short 2 # DWARF Version
207 .long .Lcu_begin0 # Offset of Compilation Unit Info
208 .long 40 # Compilation Unit Length
211 .ident "clang version 11.1.0 (https://github.com/llvm/llvm-project.git 1a0dc1e010bf5c8034bd4a53340fc0dc3e90549a)"
212 .section ".note.GNU-stack","",@progbits
215 .section .debug_line,"",@progbits