undef-bad-debug.s 6.82 KB
.section .text,"ax"
sym:
    .quad zed6a
sym2:
    .quad zed6b
sym3:
    .quad zed7
sym4:
    .quad zed8

.section .debug_line,"",@progbits
.Lunit:
    .long .Lunit_end - .Lunit_start # unit length
.Lunit_start:
    .short 4                        # version
    .long .Lprologue_end - .Lprologue_start # prologue length
.Lprologue_start:
    .byte 1                         # minimum instruction length
    .byte 1                         # maximum operations per instruction
    .byte 1                         # default is_stmt
    .byte -5                        # line base
    .byte 14                        # line range
    .byte 13                        # opcode base
    .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # standard opcode lengths
    .asciz "dir"                    # include directories
    .byte 0
    .asciz "undef-bad-debug.s"      # file names
    .byte 1, 0, 0
    .byte 0
    .byte 0                         # extraneous byte
.Lprologue_end:
    .byte 0, 9, 2                   # DW_LNE_set_address
    .quad sym
    .byte 3                         # DW_LNS_advance_line
    .byte 10
    .byte 1                         # DW_LNS_copy
    .byte 2                         # DW_LNS_advance_pc
    .byte 8
    .byte 0, 9, 2                   # DW_LNE_set_address
    .quad sym2
    .byte 3                         # DW_LNS_advance_line
    .byte 10
    .byte 1                         # DW_LNS_copy
    .byte 2                         # DW_LNS_advance_pc
    .byte 8
    .byte 0, 1, 1                   # DW_LNE_end_sequence
.Lunit_end:

.Lunit2:
    .long .Lunit2_end - .Lunit2_start # unit length
.Lunit2_start:
    .short 1                        # version
.Lunit2_end:

.Lunit3:
    .long .Lunit3_end - .Lunit3_start # unit length
.Lunit3_start:
    .short 4                        # version
    .long .Lprologue2_end - .Lprologue2_start # prologue length
.Lprologue2_start:
    .byte 1                         # minimum instruction length
    .byte 1                         # maximum operations per instruction
    .byte 1                         # default is_stmt
    .byte -5                        # line base
    .byte 14                        # line range
    .byte 13                        # opcode base
    .byte 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1 # standard opcode lengths
    .asciz "dir2"                   # include directories
    .byte 0
    .asciz "undef-bad-debug2.s"     # file names
    .byte 1, 0, 0
    .byte 0
.Lprologue2_end:
    .byte 0, 9, 2                   # DW_LNE_set_address
    .quad sym4
    .byte 3                         # DW_LNS_advance_line
    .byte 10
    .byte 1                         # DW_LNS_copy
    .byte 2                         # DW_LNS_advance_pc
    .byte 8
    .byte 0, 1, 1                   # DW_LNE_end_sequence
    .byte 0, 9, 2                   # DW_LNE_set_address
    .quad 0x0badbeef
    .byte 3                         # DW_LNS_advance_line
    .byte 99
    .byte 1                         # DW_LNS_copy
    .byte 99                        # DW_LNS_advance_pc
    .byte 119
    # Missing end of sequence.
.Lunit3_end:

.section .debug_info,"",@progbits
    .long   .Lcu_end - .Lcu_start   # Length of Unit
.Lcu_start:
    .short  4                       # DWARF version number
    .long   .Lsection_abbrev        # Offset Into Abbrev. Section
    .byte   8                       # Address Size (in bytes)
    .byte   1                       # Abbrev [1] 0xb:0x79 DW_TAG_compile_unit
    .long   .Lunit                  # DW_AT_stmt_list
    .byte   2                       # Abbrev [2] 0x2a:0x15 DW_TAG_variable
    .long   .Linfo_string0          # DW_AT_name
                                        # DW_AT_external
    .byte   1                       # DW_AT_decl_file
    .byte   3                       # DW_AT_decl_line
    .byte   2                       # Abbrev [2] 0x2a:0x15 DW_TAG_variable
    .long   .Linfo_string1          # DW_AT_name
                                        # DW_AT_external
    .byte   1                       # DW_AT_decl_file
    .byte   6                       # DW_AT_decl_line
    .byte   0                       # End Of Children Mark
.Lcu_end:

    .long   .Lcu2_end - .Lcu2_start # Length of Unit
.Lcu2_start:
    .short  4                       # DWARF version number
    .long   .Lsection_abbrev        # Offset Into Abbrev. Section
    .byte   8                       # Address Size (in bytes)
    .byte   1                       # Abbrev [1] 0xb:0x79 DW_TAG_compile_unit
    .long   .Lunit2                 # DW_AT_stmt_list
    .byte   2                       # Abbrev [2] 0x2a:0x15 DW_TAG_variable
    .long   .Linfo2_string          # DW_AT_name
                                        # DW_AT_external
    .byte   1                       # DW_AT_decl_file
    .byte   3                       # DW_AT_decl_line
    .byte   0                       # End Of Children Mark
.Lcu2_end:

    .long   .Lcu3_end - .Lcu3_start # Length of Unit
.Lcu3_start:
    .short  4                       # DWARF version number
    .long   .Lsection_abbrev        # Offset Into Abbrev. Section
    .byte   8                       # Address Size (in bytes)
    .byte   1                       # Abbrev [1] 0xb:0x79 DW_TAG_compile_unit
    .long   .Lunit3                 # DW_AT_stmt_list
    .byte   2                       # Abbrev [2] 0x2a:0x15 DW_TAG_variable
    .long   .Linfo3_string          # DW_AT_name
                                        # DW_AT_external
    .byte   1                       # DW_AT_decl_file
    .byte   3                       # DW_AT_decl_line
    .byte   0                       # End Of Children Mark
.Lcu3_end:

.section .debug_abbrev,"",@progbits
.Lsection_abbrev:
    .byte   1                       # Abbreviation Code
    .byte   17                      # DW_TAG_compile_unit
    .byte   1                       # DW_CHILDREN_yes
    .byte   16                      # DW_AT_stmt_list
    .byte   23                      # DW_FORM_sec_offset
    .byte   0                       # EOM(1)
    .byte   0                       # EOM(2)
    .byte   2                       # Abbreviation Code
    .byte   52                      # DW_TAG_variable
    .byte   0                       # DW_CHILDREN_no
    .byte   3                       # DW_AT_name
    .byte   14                      # DW_FORM_strp
    .byte   63                      # DW_AT_external
    .byte   25                      # DW_FORM_flag_present
    .byte   58                      # DW_AT_decl_file
    .byte   11                      # DW_FORM_data1
    .byte   59                      # DW_AT_decl_line
    .byte   11                      # DW_FORM_data1
    .byte   0                       # EOM(1)
    .byte   0                       # EOM(2)
    .byte   0                       # EOM(3)

.section .debug_str,"MS",@progbits,1
.Linfo_string0:
    .asciz "sym"
.Linfo_string1:
    .asciz "sym2"
.Linfo2_string:
    .asciz "sym3"
.Linfo3_string:
    .asciz "sym4"