1 .section .debug_line,"",@progbits
2 # Leading good section.
3 .long .Lunit1_end - .Lunit1_start # Length of Unit (DWARF-32 format)
5 .short 4 # DWARF version number
6 .long .Lprologue1_end-.Lprologue1_start # Length of Prologue
8 .byte 1 # Minimum Instruction Length
9 .byte 1 # Maximum Operations per Instruction
10 .byte 1 # Default is_stmt
13 .byte 13 # Opcode Base
14 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
15 .asciz "dir1" # Include table
18 .asciz "file1" # File table
24 .byte 0, 9, 2 # DW_LNE_set_address
26 .byte 0, 1, 1 # DW_LNE_end_sequence
30 .long .Lunit_v0_end - .Lunit_v0_start # unit length
36 .long .Lunit_v1_end - .Lunit_v1_start # unit length
41 # Version 5 malformed line/include table.
42 .long .Lunit_v5_end - .Lunit_v5_start # unit length
45 .byte 8 # address size
46 .byte 8 # segment selector
47 .long .Lprologue_v5_end-.Lprologue_v5_start # Length of Prologue
49 .byte 1 # Minimum Instruction Length
50 .byte 1 # Maximum Operations per Instruction
51 .byte 1 # Default is_stmt
54 .byte 13 # Opcode Base
55 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
56 .byte 0 # directory table (invalid as no path component)
58 .byte 0, 9, 2 # DW_LNE_set_address
59 .quad 0x8877665544332211
60 .byte 0, 1, 1 # DW_LNE_end_sequence
64 .long .Lunit_short_prologue_end - .Lunit_short_prologue_start # unit length
65 .Lunit_short_prologue_start:
67 .long .Lprologue_short_prologue_end-.Lprologue_short_prologue_start # Length of Prologue
68 .Lprologue_short_prologue_start:
69 .byte 1 # Minimum Instruction Length
70 .byte 1 # Maximum Operations per Instruction
71 .byte 1 # Default is_stmt
74 .byte 13 # Opcode Base
75 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
76 .asciz "dir1" # Include table
79 .asciz "file1" # File table
83 .Lprologue_short_prologue_end:
84 .byte 0, 9, 2 # DW_LNE_set_address
85 .quad 0x1122334455667788
86 .byte 0, 1, 1 # DW_LNE_end_sequence
87 .Lunit_short_prologue_end:
90 .long .Lunit_long_prologue_end - .Lunit_long_prologue_start # unit length
91 .Lunit_long_prologue_start:
93 .long .Lprologue_long_prologue_end-.Lprologue_long_prologue_start # Length of Prologue
94 .Lprologue_long_prologue_start:
95 .byte 1 # Minimum Instruction Length
96 .byte 1 # Maximum Operations per Instruction
97 .byte 1 # Default is_stmt
100 .byte 13 # Opcode Base
101 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
102 .asciz "dir1" # Include table
105 .asciz "file1" # File table
110 # Skipped byte (treated as part of prologue).
112 .Lprologue_long_prologue_end:
113 .byte 0, 9, 2 # DW_LNE_set_address
114 .quad 0x1111222233334444
115 .byte 0, 1, 1 # DW_LNE_end_sequence
116 .Lunit_long_prologue_end:
118 # Incorrect length extended opcodes.
119 .long .Lunit_long_opcode_end - .Lunit_long_opcode_start # unit length
120 .Lunit_long_opcode_start:
122 .long .Lprologue_long_opcode_end-.Lprologue_long_opcode_start # Length of Prologue
123 .Lprologue_long_opcode_start:
124 .byte 1 # Minimum Instruction Length
125 .byte 1 # Maximum Operations per Instruction
126 .byte 1 # Default is_stmt
128 .byte 14 # Line Range
129 .byte 13 # Opcode Base
130 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
131 .asciz "dir1" # Include table
134 .asciz "file1" # File table
139 .Lprologue_long_opcode_end:
140 .byte 0, 9, 2 # DW_LNE_set_address
142 .byte 0, 2, 1 # DW_LNE_end_sequence (too long)
143 .byte 6 # DW_LNS_negate_stmt (but will be consumed with the end sequence above).
144 .byte 0, 1, 4 # DW_LNE_set_discriminator (too short)
145 .byte 0xa # Parsed as argument for set_discriminator and also DW_LNS_set_prologue_end.
146 .byte 0, 9, 2 # DW_LNE_set_address
148 .byte 0, 1, 1 # DW_LNE_end_sequence
149 .Lunit_long_opcode_end:
151 # No end of sequence.
152 .long .Lunit_no_eos_end - .Lunit_no_eos_start # unit length
155 .long .Lprologue_no_eos_end-.Lprologue_no_eos_start # Length of Prologue
156 .Lprologue_no_eos_start:
157 .byte 1 # Minimum Instruction Length
158 .byte 1 # Maximum Operations per Instruction
159 .byte 1 # Default is_stmt
161 .byte 14 # Line Range
162 .byte 13 # Opcode Base
163 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
164 .asciz "dir1" # Include table
167 .asciz "file1" # File table
172 .Lprologue_no_eos_end:
173 .byte 0, 9, 2 # DW_LNE_set_address
175 .byte 1 # DW_LNS_copy
178 # V5 very short prologue length.
179 .long .Linvalid_description_end0-.Linvalid_description_start0 # Length of Unit
180 .Linvalid_description_start0:
181 .short 5 # DWARF version number
182 .byte 8 # Address Size
183 .byte 0 # Segment Selector Size
184 .long .Linvalid_description_header_end0 - .Linvalid_description_params0 # Length of Prologue (invalid)
185 .Linvalid_description_params0:
186 .byte 1 # Minimum Instruction Length
187 .byte 1 # Maximum Operations per Instruction
188 .byte 1 # Default is_stmt
190 .byte 14 # Line Range
191 .byte 13 # Opcode Base
192 .byte 0, 1, 1, 1, 1, 0, 0, 0, 0, 1 # Standard Opcode Lengths
193 .Linvalid_description_header_end0:
194 .byte 0, 9, 2 # DW_LNE_set_address
196 .byte 0, 1, 1 # DW_LNE_end_sequence
197 .Linvalid_description_end0:
199 # V5 prologue ends during file table.
200 .long .Linvalid_file_end0-.Linvalid_file_start0 # Length of Unit
201 .Linvalid_file_start0:
202 .short 5 # DWARF version number
203 .byte 8 # Address Size
204 .byte 0 # Segment Selector Size
205 .long .Linvalid_file_header_end0 - .Linvalid_file_params0 # Length of Prologue (invalid)
206 .Linvalid_file_params0:
207 .byte 1 # Minimum Instruction Length
208 .byte 1 # Maximum Operations per Instruction
209 .byte 1 # Default is_stmt
211 .byte 14 # Line Range
212 .byte 13 # Opcode Base
213 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
214 # Directory table format
215 .byte 1 # One element per directory entry
216 .byte 1 # DW_LNCT_path
217 .byte 0x08 # DW_FORM_string
218 # Directory table entries
219 .byte 1 # 1 directory
222 .byte 2 # 2 elements per file entry
223 .byte 1 # DW_LNCT_path
224 .byte 0x08 # DW_FORM_string
225 .byte 2 # DW_LNCT_directory_index
226 .Linvalid_file_header_end0:
227 .byte 0, 9, 2 # DW_LNE_set_address
229 .byte 0, 1, 1 # DW_LNE_end_sequence
232 # V5 prologue ends during directory table.
233 .long .Linvalid_dir_end0-.Linvalid_dir_start0 # Length of Unit
234 .Linvalid_dir_start0:
235 .short 5 # DWARF version number
236 .byte 8 # Address Size
237 .byte 0 # Segment Selector Size
238 .long .Linvalid_dir_header_end0 - .Linvalid_dir_params0 # Length of Prologue (invalid)
239 .Linvalid_dir_params0:
240 .byte 1 # Minimum Instruction Length
241 .byte 1 # Maximum Operations per Instruction
242 .byte 1 # Default is_stmt
244 .byte 14 # Line Range
245 .byte 13 # Opcode Base
246 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
247 # Directory table format
248 .byte 1 # One element per directory entry
249 .byte 1 # DW_LNCT_path
250 .byte 0x08 # DW_FORM_string
251 # Directory table entries
252 .byte 1 # 1 directory
253 .Linvalid_dir_header_end0:
254 .byte 0, 9, 2 # DW_LNE_set_address
255 .quad 0x4444333322221111
256 .byte 0, 1, 1 # DW_LNE_end_sequence
259 # Header truncated while reading the MD5 data.
260 .long .Linvalid_md5_end0-.Linvalid_md5_start0 # Length of Unit
261 .Linvalid_md5_start0:
262 .short 5 # DWARF version number
263 .byte 8 # Address Size
264 .byte 0 # Segment Selector Size
265 .long .Linvalid_md5_header_end0-.Linvalid_md5_params0 # Length of Prologue
266 .Linvalid_md5_params0:
267 .byte 1 # Minimum Instruction Length
268 .byte 1 # Maximum Operations per Instruction
269 .byte 1 # Default is_stmt
271 .byte 14 # Line Range
272 .byte 13 # Opcode Base
273 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
274 # Directory table format
275 .byte 1 # One element per directory entry
276 .byte 1 # DW_LNCT_path
277 .byte 0x08 # DW_FORM_string
278 # Directory table entries
279 .byte 1 # 1 directory
282 .byte 3 # 3 elements per file entry
283 .byte 1 # DW_LNCT_path
284 .byte 0x08 # DW_FORM_string
285 .byte 5 # DW_LNCT_MD5
286 .byte 0x1e # DW_FORM_data16
287 .byte 2 # DW_LNCT_directory_index
288 .byte 0x0b # DW_FORM_data1
293 # Data to show that the rest of the prologue is skipped.
295 .Linvalid_md5_header_end0:
296 .byte 0, 9, 2 # DW_LNE_set_address
297 .quad 0x1234123412341234
298 .byte 0, 1, 1 # DW_LNE_end_sequence
301 # Header truncated while reading the MD5 form.
302 .long .Linvalid_md5_end1-.Linvalid_md5_start1 # Length of Unit
303 .Linvalid_md5_start1:
304 .short 5 # DWARF version number
305 .byte 8 # Address Size
306 .byte 0 # Segment Selector Size
307 .long .Linvalid_md5_header_end1 - .Linvalid_md5_params1 # Length of Prologue
308 .Linvalid_md5_params1:
309 .byte 1 # Minimum Instruction Length
310 .byte 1 # Maximum Operations per Instruction
311 .byte 1 # Default is_stmt
313 .byte 14 # Line Range
314 .byte 13 # Opcode Base
315 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
316 # Directory table format
317 .byte 1 # One element per directory entry
318 .byte 1 # DW_LNCT_path
319 .byte 0x08 # DW_FORM_string
320 # Directory table entries
321 .byte 1 # 1 directory
324 .byte 2 # 2 elements per file entry
325 .byte 1 # DW_LNCT_path
326 .byte 0x08 # DW_FORM_string
327 .byte 5 # DW_LNCT_MD5
328 .Linvalid_md5_header_end1:
329 .byte 0, 9, 2 # DW_LNE_set_address
330 .quad 0x4321432143214321
331 .byte 0, 1, 1 # DW_LNE_end_sequence
334 # V5 invalid directory content description has unsupported form.
335 .long .Linvalid_dir_form_end0-.Linvalid_dir_form_start0 # Length of Unit
336 .Linvalid_dir_form_start0:
337 .short 5 # DWARF version number
338 .byte 8 # Address Size
339 .byte 0 # Segment Selector Size
340 .long .Linvalid_dir_form_header_end0 - .Linvalid_dir_form_params0
341 .Linvalid_dir_form_params0:
342 .byte 1 # Minimum Instruction Length
343 .byte 1 # Maximum Operations per Instruction
344 .byte 1 # Default is_stmt
346 .byte 14 # Line Range
347 .byte 13 # Opcode Base
348 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
349 # Directory table format
350 .byte 2 # Two elements per directory entry
351 .byte 1 # DW_LNCT_path
352 .byte 0x08 # DW_FORM_string
353 .byte 2 # DW_LNCT_directory_index (ignored)
354 .byte 0x7f # Unknown form
355 # Directory table entries
356 .byte 2 # 2 directories
357 .asciz "/foo" # Directory name
358 .byte 0xff # Arbitrary data for unknown form
359 .asciz "/bar" # Directory name
360 .byte 0xff # Arbitrary data for unknown form
362 .byte 1 # 1 element per file entry
363 .byte 1 # DW_LNCT_path
364 .byte 0x08 # DW_FORM_string
367 .asciz "xyz" # File names
368 .Linvalid_dir_form_header_end0:
369 .byte 0, 9, 2 # DW_LNE_set_address
370 .quad 0xaaaabbbbccccdddd
371 .byte 0, 1, 1 # DW_LNE_end_sequence
372 .Linvalid_dir_form_end0:
375 .long .Lzero_opcode_base_end - .Lzero_opcode_base_start # unit length
376 .Lzero_opcode_base_start:
378 .long .Lzero_opcode_base_prologue_end-.Lzero_opcode_base_prologue_start # Length of Prologue
379 .Lzero_opcode_base_prologue_start:
380 .byte 1 # Minimum Instruction Length
381 .byte 1 # Maximum Operations per Instruction
382 .byte 1 # Default is_stmt
385 .byte 0 # Opcode Base
386 .asciz "dir1" # Include table
391 .Lzero_opcode_base_prologue_end:
392 .byte 0, 9, 2 # DW_LNE_set_address
393 .quad 0xffffeeeeddddcccc
394 .byte 0x1 # Special opcode
395 .byte 0, 1, 1 # DW_LNE_end_sequence
396 .Lzero_opcode_base_end:
398 # V4 table with unterminated include directory table.
399 .long .Lunterminated_include_end - .Lunterminated_include_start # unit length
400 .Lunterminated_include_start:
402 .long .Lunterminated_include_prologue_end-.Lunterminated_include_prologue_start # Length of Prologue
403 .Lunterminated_include_prologue_start:
404 .byte 1 # Minimum Instruction Length
405 .byte 1 # Maximum Operations per Instruction
406 .byte 1 # Default is_stmt
408 .byte 14 # Line Range
409 .byte 13 # Opcode Base
410 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
411 .asciz "dir1" # Include table
412 .Lunterminated_include_prologue_end:
413 .byte 0, 9, 2 # DW_LNE_set_address
414 .quad 0xabcdef0123456789
415 .byte 0, 1, 1 # DW_LNE_end_sequence
416 .Lunterminated_include_end:
418 # V4 table with unterminated file name table.
419 .long .Lunterminated_files_end - .Lunterminated_files_start # unit length
420 .Lunterminated_files_start:
422 .long .Lunterminated_files_prologue_end-.Lunterminated_files_prologue_start # Length of Prologue
423 .Lunterminated_files_prologue_start:
424 .byte 1 # Minimum Instruction Length
425 .byte 1 # Maximum Operations per Instruction
426 .byte 1 # Default is_stmt
428 .byte 14 # Line Range
429 .byte 13 # Opcode Base
430 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
431 .asciz "dir1" # Include table
433 .asciz "foo.c" # File table
435 .Lunterminated_files_prologue_end:
436 .byte 0, 9, 2 # DW_LNE_set_address
437 .quad 0xababcdcdefef0909
438 .byte 0, 1, 1 # DW_LNE_end_sequence
439 .Lunterminated_files_end:
441 # Opcode extends past the end of the table, as claimed by the unit length field.
442 .long .Lextended_past_end_end - .Lextended_past_end_start # Length of Unit
443 .Lextended_past_end_start:
444 .short 4 # DWARF version number
445 .long .Lprologue_extended_past_end_end-.Lprologue_extended_past_end_start # Length of Prologue
446 .Lprologue_extended_past_end_start:
447 .byte 1 # Minimum Instruction Length
448 .byte 1 # Maximum Operations per Instruction
449 .byte 1 # Default is_stmt
451 .byte 14 # Line Range
452 .byte 13 # Opcode Base
453 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
454 .asciz "dir1" # Include table
457 .asciz "file1" # File table
462 .Lprologue_extended_past_end_end:
463 .byte 0, 9, 2 # DW_LNE_set_address
465 .byte 1 # DW_LNS_copy
466 .byte 0, 9, 2 # DW_LNE_set_address
467 .long 0xf001f000 # Truncated address (should be 8 bytes)
469 .Lextended_past_end_end:
471 # Trailing good section.
472 .long .Lunit_good_end - .Lunit_good_start # Length of Unit (DWARF-32 format)
474 .short 4 # DWARF version number
475 .long .Lprologue_good_end-.Lprologue_good_start # Length of Prologue
476 .Lprologue_good_start:
477 .byte 1 # Minimum Instruction Length
478 .byte 1 # Maximum Operations per Instruction
479 .byte 1 # Default is_stmt
481 .byte 14 # Line Range
482 .byte 13 # Opcode Base
483 .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths
484 .asciz "dir1" # Include table
487 .asciz "file1" # File table
493 .byte 0, 9, 2 # DW_LNE_set_address
495 .byte 0, 1, 1 # DW_LNE_end_sequence