497 lines · plain
1.section .debug_line,"",@progbits2# Leading good section.3.long .Lunit1_end - .Lunit1_start # Length of Unit (DWARF-32 format)4.Lunit1_start:5.short 4 # DWARF version number6.long .Lprologue1_end-.Lprologue1_start # Length of Prologue7.Lprologue1_start:8.byte 1 # Minimum Instruction Length9.byte 1 # Maximum Operations per Instruction10.byte 1 # Default is_stmt11.byte -5 # Line Base12.byte 14 # Line Range13.byte 13 # Opcode Base14.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths15.asciz "dir1" # Include table16.asciz "dir2"17.byte 018.asciz "file1" # File table19.byte 0, 0, 020.asciz "file2"21.byte 1, 0, 022.byte 023.Lprologue1_end:24.byte 0, 9, 2 # DW_LNE_set_address25.quad 0x0badbeef26.byte 0, 1, 1 # DW_LNE_end_sequence27.Lunit1_end:28 29# Version 0.30.long .Lunit_v0_end - .Lunit_v0_start # unit length31.Lunit_v0_start:32.short 0 # version33.Lunit_v0_end:34 35# Version 1.36.long .Lunit_v1_end - .Lunit_v1_start # unit length37.Lunit_v1_start:38.short 1 # version39.Lunit_v1_end:40 41# Version 5 malformed line/include table.42.long .Lunit_v5_end - .Lunit_v5_start # unit length43.Lunit_v5_start:44.short 5 # version45.byte 8 # address size46.byte 8 # segment selector47.long .Lprologue_v5_end-.Lprologue_v5_start # Length of Prologue48.Lprologue_v5_start:49.byte 1 # Minimum Instruction Length50.byte 1 # Maximum Operations per Instruction51.byte 1 # Default is_stmt52.byte -5 # Line Base53.byte 14 # Line Range54.byte 13 # Opcode Base55.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths56.byte 0 # directory table (invalid as no path component)57.Lprologue_v5_end:58.byte 0, 9, 2 # DW_LNE_set_address59.quad 0x887766554433221160.byte 0, 1, 1 # DW_LNE_end_sequence61.Lunit_v5_end:62 63# Short prologue.64.long .Lunit_short_prologue_end - .Lunit_short_prologue_start # unit length65.Lunit_short_prologue_start:66.short 4 # version67.long .Lprologue_short_prologue_end-.Lprologue_short_prologue_start # Length of Prologue68.Lprologue_short_prologue_start:69.byte 1 # Minimum Instruction Length70.byte 1 # Maximum Operations per Instruction71.byte 1 # Default is_stmt72.byte -5 # Line Base73.byte 14 # Line Range74.byte 13 # Opcode Base75.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths76.asciz "dir1" # Include table77.asciz "dir2"78.byte 079.asciz "file1" # File table80.byte 1, 2, 381.asciz "file2"82.byte 1, 283.Lprologue_short_prologue_end:84.byte 0, 9, 2 # DW_LNE_set_address85.quad 0x112233445566778886.byte 0, 1, 1 # DW_LNE_end_sequence87.Lunit_short_prologue_end:88 89# Over-long prologue.90.long .Lunit_long_prologue_end - .Lunit_long_prologue_start # unit length91.Lunit_long_prologue_start:92.short 4 # version93.long .Lprologue_long_prologue_end-.Lprologue_long_prologue_start # Length of Prologue94.Lprologue_long_prologue_start:95.byte 1 # Minimum Instruction Length96.byte 1 # Maximum Operations per Instruction97.byte 1 # Default is_stmt98.byte -5 # Line Base99.byte 14 # Line Range100.byte 13 # Opcode Base101.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths102.asciz "dir1" # Include table103.asciz "dir2"104.byte 0105.asciz "file1" # File table106.byte 0, 0, 0107.asciz "file2"108.byte 1, 2, 3109.byte 0110# Skipped byte (treated as part of prologue).111.byte 6112.Lprologue_long_prologue_end:113.byte 0, 9, 2 # DW_LNE_set_address114.quad 0x1111222233334444115.byte 0, 1, 1 # DW_LNE_end_sequence116.Lunit_long_prologue_end:117 118# Incorrect length extended opcodes.119.long .Lunit_long_opcode_end - .Lunit_long_opcode_start # unit length120.Lunit_long_opcode_start:121.short 4 # version122.long .Lprologue_long_opcode_end-.Lprologue_long_opcode_start # Length of Prologue123.Lprologue_long_opcode_start:124.byte 1 # Minimum Instruction Length125.byte 1 # Maximum Operations per Instruction126.byte 1 # Default is_stmt127.byte -5 # Line Base128.byte 14 # Line Range129.byte 13 # Opcode Base130.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths131.asciz "dir1" # Include table132.asciz "dir2"133.byte 0134.asciz "file1" # File table135.byte 0, 0, 0136.asciz "file2"137.byte 1, 0, 0138.byte 0139.Lprologue_long_opcode_end:140.byte 0, 9, 2 # DW_LNE_set_address141.quad 0xabbadaba142.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_address147.quad 0xbabb1e45148.byte 0, 1, 1 # DW_LNE_end_sequence149.Lunit_long_opcode_end:150 151# No end of sequence.152.long .Lunit_no_eos_end - .Lunit_no_eos_start # unit length153.Lunit_no_eos_start:154.short 4 # version155.long .Lprologue_no_eos_end-.Lprologue_no_eos_start # Length of Prologue156.Lprologue_no_eos_start:157.byte 1 # Minimum Instruction Length158.byte 1 # Maximum Operations per Instruction159.byte 1 # Default is_stmt160.byte -5 # Line Base161.byte 14 # Line Range162.byte 13 # Opcode Base163.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths164.asciz "dir1" # Include table165.asciz "dir2"166.byte 0167.asciz "file1" # File table168.byte 0, 0, 0169.asciz "file2"170.byte 1, 0, 0171.byte 0172.Lprologue_no_eos_end:173.byte 0, 9, 2 # DW_LNE_set_address174.quad 0xdeadfade175.byte 1 # DW_LNS_copy176.Lunit_no_eos_end:177 178# V5 very short prologue length.179.long .Linvalid_description_end0-.Linvalid_description_start0 # Length of Unit180.Linvalid_description_start0:181.short 5 # DWARF version number182.byte 8 # Address Size183.byte 0 # Segment Selector Size184.long .Linvalid_description_header_end0 - .Linvalid_description_params0 # Length of Prologue (invalid)185.Linvalid_description_params0:186.byte 1 # Minimum Instruction Length187.byte 1 # Maximum Operations per Instruction188.byte 1 # Default is_stmt189.byte -5 # Line Base190.byte 14 # Line Range191.byte 13 # Opcode Base192.byte 0, 1, 1, 1, 1, 0, 0, 0, 0, 1 # Standard Opcode Lengths193.Linvalid_description_header_end0:194.byte 0, 9, 2 # DW_LNE_set_address195.quad 0xbabb1ebabb1e196.byte 0, 1, 1 # DW_LNE_end_sequence197.Linvalid_description_end0:198 199# V5 prologue ends during file table.200.long .Linvalid_file_end0-.Linvalid_file_start0 # Length of Unit201.Linvalid_file_start0:202.short 5 # DWARF version number203.byte 8 # Address Size204.byte 0 # Segment Selector Size205.long .Linvalid_file_header_end0 - .Linvalid_file_params0 # Length of Prologue (invalid)206.Linvalid_file_params0:207.byte 1 # Minimum Instruction Length208.byte 1 # Maximum Operations per Instruction209.byte 1 # Default is_stmt210.byte -5 # Line Base211.byte 14 # Line Range212.byte 13 # Opcode Base213.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths214# Directory table format215.byte 1 # One element per directory entry216.byte 1 # DW_LNCT_path217.byte 0x08 # DW_FORM_string218# Directory table entries219.byte 1 # 1 directory220.asciz "/tmp"221# File table format222.byte 2 # 2 elements per file entry223.byte 1 # DW_LNCT_path224.byte 0x08 # DW_FORM_string225.byte 2 # DW_LNCT_directory_index226.Linvalid_file_header_end0:227.byte 0, 9, 2 # DW_LNE_set_address228.quad 0xab4acadab4a229.byte 0, 1, 1 # DW_LNE_end_sequence230.Linvalid_file_end0:231 232# V5 prologue ends during directory table.233.long .Linvalid_dir_end0-.Linvalid_dir_start0 # Length of Unit234.Linvalid_dir_start0:235.short 5 # DWARF version number236.byte 8 # Address Size237.byte 0 # Segment Selector Size238.long .Linvalid_dir_header_end0 - .Linvalid_dir_params0 # Length of Prologue (invalid)239.Linvalid_dir_params0:240.byte 1 # Minimum Instruction Length241.byte 1 # Maximum Operations per Instruction242.byte 1 # Default is_stmt243.byte -5 # Line Base244.byte 14 # Line Range245.byte 13 # Opcode Base246.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths247# Directory table format248.byte 1 # One element per directory entry249.byte 1 # DW_LNCT_path250.byte 0x08 # DW_FORM_string251# Directory table entries252.byte 1 # 1 directory253.Linvalid_dir_header_end0:254.byte 0, 9, 2 # DW_LNE_set_address255.quad 0x4444333322221111256.byte 0, 1, 1 # DW_LNE_end_sequence257.Linvalid_dir_end0:258 259# Header truncated while reading the MD5 data.260.long .Linvalid_md5_end0-.Linvalid_md5_start0 # Length of Unit261.Linvalid_md5_start0:262.short 5 # DWARF version number263.byte 8 # Address Size264.byte 0 # Segment Selector Size265.long .Linvalid_md5_header_end0-.Linvalid_md5_params0 # Length of Prologue266.Linvalid_md5_params0:267.byte 1 # Minimum Instruction Length268.byte 1 # Maximum Operations per Instruction269.byte 1 # Default is_stmt270.byte -5 # Line Base271.byte 14 # Line Range272.byte 13 # Opcode Base273.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths274# Directory table format275.byte 1 # One element per directory entry276.byte 1 # DW_LNCT_path277.byte 0x08 # DW_FORM_string278# Directory table entries279.byte 1 # 1 directory280.asciz "/tmp"281# File table format282.byte 3 # 3 elements per file entry283.byte 1 # DW_LNCT_path284.byte 0x08 # DW_FORM_string285.byte 5 # DW_LNCT_MD5286.byte 0x1e # DW_FORM_data16287.byte 2 # DW_LNCT_directory_index288.byte 0x0b # DW_FORM_data1289# File table entries290.byte 1 # 1 file291.asciz "a.c"292.byte 0293# Data to show that the rest of the prologue is skipped.294.byte 1295.Linvalid_md5_header_end0:296.byte 0, 9, 2 # DW_LNE_set_address297.quad 0x1234123412341234298.byte 0, 1, 1 # DW_LNE_end_sequence299.Linvalid_md5_end0:300 301# Header truncated while reading the MD5 form.302.long .Linvalid_md5_end1-.Linvalid_md5_start1 # Length of Unit303.Linvalid_md5_start1:304.short 5 # DWARF version number305.byte 8 # Address Size306.byte 0 # Segment Selector Size307.long .Linvalid_md5_header_end1 - .Linvalid_md5_params1 # Length of Prologue308.Linvalid_md5_params1:309.byte 1 # Minimum Instruction Length310.byte 1 # Maximum Operations per Instruction311.byte 1 # Default is_stmt312.byte -5 # Line Base313.byte 14 # Line Range314.byte 13 # Opcode Base315.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths316# Directory table format317.byte 1 # One element per directory entry318.byte 1 # DW_LNCT_path319.byte 0x08 # DW_FORM_string320# Directory table entries321.byte 1 # 1 directory322.asciz "/tmp"323# File table format324.byte 2 # 2 elements per file entry325.byte 1 # DW_LNCT_path326.byte 0x08 # DW_FORM_string327.byte 5 # DW_LNCT_MD5328.Linvalid_md5_header_end1:329.byte 0, 9, 2 # DW_LNE_set_address330.quad 0x4321432143214321331.byte 0, 1, 1 # DW_LNE_end_sequence332.Linvalid_md5_end1:333 334# V5 invalid directory content description has unsupported form.335.long .Linvalid_dir_form_end0-.Linvalid_dir_form_start0 # Length of Unit336.Linvalid_dir_form_start0:337.short 5 # DWARF version number338.byte 8 # Address Size339.byte 0 # Segment Selector Size340.long .Linvalid_dir_form_header_end0 - .Linvalid_dir_form_params0341.Linvalid_dir_form_params0:342.byte 1 # Minimum Instruction Length343.byte 1 # Maximum Operations per Instruction344.byte 1 # Default is_stmt345.byte -5 # Line Base346.byte 14 # Line Range347.byte 13 # Opcode Base348.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths349# Directory table format350.byte 2 # Two elements per directory entry351.byte 1 # DW_LNCT_path352.byte 0x08 # DW_FORM_string353.byte 2 # DW_LNCT_directory_index (ignored)354.byte 0x7f # Unknown form355# Directory table entries356.byte 2 # 2 directories357.asciz "/foo" # Directory name358.byte 0xff # Arbitrary data for unknown form359.asciz "/bar" # Directory name360.byte 0xff # Arbitrary data for unknown form361# File table format362.byte 1 # 1 element per file entry363.byte 1 # DW_LNCT_path364.byte 0x08 # DW_FORM_string365# File table entries366.byte 1 # 1 file367.asciz "xyz" # File names368.Linvalid_dir_form_header_end0:369.byte 0, 9, 2 # DW_LNE_set_address370.quad 0xaaaabbbbccccdddd371.byte 0, 1, 1 # DW_LNE_end_sequence372.Linvalid_dir_form_end0:373 374# Zero opcode base.375.long .Lzero_opcode_base_end - .Lzero_opcode_base_start # unit length376.Lzero_opcode_base_start:377.short 4 # version378.long .Lzero_opcode_base_prologue_end-.Lzero_opcode_base_prologue_start # Length of Prologue379.Lzero_opcode_base_prologue_start:380.byte 1 # Minimum Instruction Length381.byte 1 # Maximum Operations per Instruction382.byte 1 # Default is_stmt383.byte 0 # Line Base384.byte 1 # Line Range385.byte 0 # Opcode Base386.asciz "dir1" # Include table387.byte 0388.asciz "file1"389.byte 1, 2, 3390.byte 0391.Lzero_opcode_base_prologue_end:392.byte 0, 9, 2 # DW_LNE_set_address393.quad 0xffffeeeeddddcccc394.byte 0x1 # Special opcode395.byte 0, 1, 1 # DW_LNE_end_sequence396.Lzero_opcode_base_end:397 398# V4 table with unterminated include directory table.399.long .Lunterminated_include_end - .Lunterminated_include_start # unit length400.Lunterminated_include_start:401.short 4 # version402.long .Lunterminated_include_prologue_end-.Lunterminated_include_prologue_start # Length of Prologue403.Lunterminated_include_prologue_start:404.byte 1 # Minimum Instruction Length405.byte 1 # Maximum Operations per Instruction406.byte 1 # Default is_stmt407.byte -5 # Line Base408.byte 14 # Line Range409.byte 13 # Opcode Base410.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths411.asciz "dir1" # Include table412.Lunterminated_include_prologue_end:413.byte 0, 9, 2 # DW_LNE_set_address414.quad 0xabcdef0123456789415.byte 0, 1, 1 # DW_LNE_end_sequence416.Lunterminated_include_end:417 418# V4 table with unterminated file name table.419.long .Lunterminated_files_end - .Lunterminated_files_start # unit length420.Lunterminated_files_start:421.short 4 # version422.long .Lunterminated_files_prologue_end-.Lunterminated_files_prologue_start # Length of Prologue423.Lunterminated_files_prologue_start:424.byte 1 # Minimum Instruction Length425.byte 1 # Maximum Operations per Instruction426.byte 1 # Default is_stmt427.byte -5 # Line Base428.byte 14 # Line Range429.byte 13 # Opcode Base430.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths431.asciz "dir1" # Include table432.byte 0433.asciz "foo.c" # File table434.byte 1, 2, 3435.Lunterminated_files_prologue_end:436.byte 0, 9, 2 # DW_LNE_set_address437.quad 0xababcdcdefef0909438.byte 0, 1, 1 # DW_LNE_end_sequence439.Lunterminated_files_end:440 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 Unit443.Lextended_past_end_start:444.short 4 # DWARF version number445.long .Lprologue_extended_past_end_end-.Lprologue_extended_past_end_start # Length of Prologue446.Lprologue_extended_past_end_start:447.byte 1 # Minimum Instruction Length448.byte 1 # Maximum Operations per Instruction449.byte 1 # Default is_stmt450.byte -5 # Line Base451.byte 14 # Line Range452.byte 13 # Opcode Base453.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths454.asciz "dir1" # Include table455.asciz "dir2"456.byte 0457.asciz "file1" # File table458.byte 0, 0, 0459.asciz "file2"460.byte 1, 0, 0461.byte 0462.Lprologue_extended_past_end_end:463.byte 0, 9, 2 # DW_LNE_set_address464.quad 0xfeedfeed465.byte 1 # DW_LNS_copy466.byte 0, 9, 2 # DW_LNE_set_address467.long 0xf001f000 # Truncated address (should be 8 bytes)468.byte 0xf0, 0, 1469.Lextended_past_end_end:470 471# Trailing good section.472.long .Lunit_good_end - .Lunit_good_start # Length of Unit (DWARF-32 format)473.Lunit_good_start:474.short 4 # DWARF version number475.long .Lprologue_good_end-.Lprologue_good_start # Length of Prologue476.Lprologue_good_start:477.byte 1 # Minimum Instruction Length478.byte 1 # Maximum Operations per Instruction479.byte 1 # Default is_stmt480.byte -5 # Line Base481.byte 14 # Line Range482.byte 13 # Opcode Base483.byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # Standard Opcode Lengths484.asciz "dir1" # Include table485.asciz "dir2"486.byte 0487.asciz "file1" # File table488.byte 0, 0, 0489.asciz "file2"490.byte 1, 0, 0491.byte 0492.Lprologue_good_end:493.byte 0, 9, 2 # DW_LNE_set_address494.quad 0xcafebabe495.byte 0, 1, 1 # DW_LNE_end_sequence496.Lunit_good_end:497