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-4 hello.c
17 .globl hello # -- Begin function hello
22 .file 1 "/xxxxxx/xxxx/xxxxxxxxxx/xxxxxxxx/hello" "hello.c"
23 .loc 1 3 0 # hello.c:3:0
27 .cfi_def_cfa_offset 16
30 .cfi_def_cfa_register %rbp
32 .loc 1 4 5 prologue_end # hello.c:4:5
36 .loc 1 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 17 # DW_TAG_compile_unit
54 .byte 0 # DW_CHILDREN_no
55 .byte 16 # DW_AT_stmt_list
56 .byte 23 # DW_FORM_sec_offset
57 .byte 27 # DW_AT_comp_dir
58 .byte 14 # DW_FORM_strp
59 .ascii "\264B" # DW_AT_GNU_pubnames
60 .byte 25 # DW_FORM_flag_present
61 .ascii "\260B" # DW_AT_GNU_dwo_name
62 .byte 14 # DW_FORM_strp
63 .ascii "\261B" # DW_AT_GNU_dwo_id
64 .byte 7 # DW_FORM_data8
65 .byte 17 # DW_AT_low_pc
66 .byte 1 # DW_FORM_addr
67 .byte 18 # DW_AT_high_pc
68 .byte 6 # DW_FORM_data4
69 .ascii "\263B" # DW_AT_GNU_addr_base
70 .byte 23 # DW_FORM_sec_offset
74 .section .debug_info,"",@progbits
76 # .long 4294967295 # 2^32 - 1 #44 # Length of Unit
77 .long 44 # Length of Unit
78 .short 4 # DWARF version number
79 .long .debug_abbrev # Offset Into Abbrev. Section
80 .byte 8 # Address Size (in bytes)
81 .byte 1 # Abbrev [1] 0xb:0x25 DW_TAG_compile_unit
82 .long .Lline_table_start0 # DW_AT_stmt_list
83 .long .Lskel_string0 # DW_AT_comp_dir
85 .long .Lskel_string1 # DW_AT_GNU_dwo_name
86 .quad -94954012350180462 # DW_AT_GNU_dwo_id
87 .quad .Lfunc_begin0 # DW_AT_low_pc
88 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
89 .long .Laddr_table_base0 # DW_AT_GNU_addr_base
90 # .fill 4294967251 # = 2^32 - 1 - 44
91 .section .debug_str,"MS",@progbits,1
93 .asciz "/xxxxxx/xxxx/xxxxxxxxxx/xxxxxxxx/hello" # string offset=0
95 .asciz "hello.dwo" # string offset=39
96 .section .debug_str.dwo,"eMS",@progbits,1
98 .asciz "hello" # string offset=0
100 .asciz "clang version 11.1.0 (https://github.com/llvm/llvm-project.git 173544ee3d09cdce8665f2097f677c31e1f1a9a1)" # string offset=6
102 .asciz "hello.c" # string offset=111
104 .asciz "hello.dwo" # string offset=119
105 .section .debug_str_offsets.dwo,"e",@progbits
110 .section .debug_info.dwo,"e",@progbits
111 .long 4294967266 # 2^32 - 30 #33 # Length of Unit
112 .short 4 # DWARF version number
113 .long 0 # Offset Into Abbrev. Section
114 .byte 8 # Address Size (in bytes)
115 .byte 1 # Abbrev [1] 0xb:0x1a DW_TAG_compile_unit
116 .byte 1 # DW_AT_producer
117 .short 12 # DW_AT_language
119 .byte 3 # DW_AT_GNU_dwo_name
120 .quad -94954012350180462 # DW_AT_GNU_dwo_id
121 .byte 2 # Abbrev [2] 0x19:0xb DW_TAG_subprogram
122 .byte 0 # DW_AT_low_pc
123 .long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
124 .byte 1 # DW_AT_frame_base
127 .byte 1 # DW_AT_decl_file
128 .byte 3 # DW_AT_decl_line
130 .byte 0 # End Of Children Mark
131 .fill 4294967233 # 2^32 - 30 - 33
132 .section .debug_abbrev.dwo,"e",@progbits
133 .byte 1 # Abbreviation Code
134 .byte 17 # DW_TAG_compile_unit
135 .byte 1 # DW_CHILDREN_yes
136 .byte 37 # DW_AT_producer
137 .ascii "\202>" # DW_FORM_GNU_str_index
138 .byte 19 # DW_AT_language
139 .byte 5 # DW_FORM_data2
141 .ascii "\202>" # DW_FORM_GNU_str_index
142 .ascii "\260B" # DW_AT_GNU_dwo_name
143 .ascii "\202>" # DW_FORM_GNU_str_index
144 .ascii "\261B" # DW_AT_GNU_dwo_id
145 .byte 7 # DW_FORM_data8
148 .byte 2 # Abbreviation Code
149 .byte 46 # DW_TAG_subprogram
150 .byte 0 # DW_CHILDREN_no
151 .byte 17 # DW_AT_low_pc
152 .ascii "\201>" # DW_FORM_GNU_addr_index
153 .byte 18 # DW_AT_high_pc
154 .byte 6 # DW_FORM_data4
155 .byte 64 # DW_AT_frame_base
156 .byte 24 # DW_FORM_exprloc
158 .ascii "\202>" # DW_FORM_GNU_str_index
159 .byte 58 # DW_AT_decl_file
160 .byte 11 # DW_FORM_data1
161 .byte 59 # DW_AT_decl_line
162 .byte 11 # DW_FORM_data1
163 .byte 63 # DW_AT_external
164 .byte 25 # DW_FORM_flag_present
168 .section .debug_addr,"",@progbits
171 .section .debug_gnu_pubnames,"",@progbits
172 .long .LpubNames_end0-.LpubNames_begin0 # Length of Public Names Info
174 .short 2 # DWARF Version
175 .long .Lcu_begin0 # Offset of Compilation Unit Info
176 .long 48 # Compilation Unit Length
177 .long 25 # DIE offset
178 .byte 48 # Attributes: FUNCTION, EXTERNAL
179 .asciz "hello" # External Name
182 .section .debug_gnu_pubtypes,"",@progbits
183 .long .LpubTypes_end0-.LpubTypes_begin0 # Length of Public Types Info
185 .short 2 # DWARF Version
186 .long .Lcu_begin0 # Offset of Compilation Unit Info
187 .long 48 # Compilation Unit Length
190 .ident "clang version 11.1.0 (https://github.com/llvm/llvm-project.git 173544ee3d09cdce8665f2097f677c31e1f1a9a1)"
191 .section ".note.GNU-stack","",@progbits
194 .section .debug_line,"",@progbits