Home | History | Annotate | Download | only in ld-elf
      1 /* This testcase is derived from a similar test in GDB.
      2 
      3    Copyright (C) 2008-2014 Free Software Foundation, Inc.
      4 
      5    This program is free software; you can redistribute it and/or modify
      6    it under the terms of the GNU General Public License as published by
      7    the Free Software Foundation; either version 3 of the License, or
      8    (at your option) any later version.
      9 
     10    This program is distributed in the hope that it will be useful,
     11    but WITHOUT ANY WARRANTY; without even the implied warranty of
     12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13    GNU General Public License for more details.
     14 
     15    You should have received a copy of the GNU General Public License
     16    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     17 
     18 /* Dummy function to provide debug information for.  */
     19 
     20 	.text
     21 .Lbegin_text1:
     22 	.globl func_cu2
     23 	.type func_cu2, %function
     24 func_cu2:
     25 .Lbegin_func_cu2:
     26 	.int 0
     27 .Lend_func_cu2:
     28 	.size func_cu2, .-func_cu2
     29 .Lend_text1:
     30 
     31 /* Debug information */
     32 
     33 	.section .debug_info
     34 .Lcu1_begin:
     35 	/* CU header */
     36 	.4byte	.Lcu1_end - .Lcu1_start		/* Length of Compilation Unit */
     37 .Lcu1_start:
     38 	.2byte	2				/* DWARF Version */
     39 	.4byte	.Labbrev1_begin			/* Offset into abbrev section */
     40 	.byte	4				/* Pointer size */
     41 
     42 	/* CU die */
     43 	.uleb128 1				/* Abbrev: DW_TAG_compile_unit */
     44 	.4byte	.Lline1_begin			/* DW_AT_stmt_list */
     45 	.4byte	.Lend_text1			/* DW_AT_high_pc */
     46 	.4byte	.Lbegin_text1			/* DW_AT_low_pc */
     47 	.ascii	"file1.txt\0"			/* DW_AT_name */
     48 	.ascii	"GNU C 3.3.3\0"			/* DW_AT_producer */
     49 	.byte	1				/* DW_AT_language (C) */
     50 
     51 	/* func_cu2 */
     52 	.uleb128	2			/* Abbrev: DW_TAG_subprogram */
     53 	.byte		1			/* DW_AT_external */
     54 	.byte		1			/* DW_AT_decl_file */
     55 	.byte		2			/* DW_AT_decl_line */
     56 	.ascii		"func_cu2\0"		/* DW_AT_name */
     57 	.4byte		.Ltype_int-.Lcu1_begin	/* DW_AT_type */
     58 	.4byte		.Lbegin_func_cu2	/* DW_AT_low_pc */
     59 	.4byte		.Lend_func_cu2		/* DW_AT_high_pc */
     60 	.byte		1			/* DW_AT_frame_base: length */
     61 	.byte		0x55			/* DW_AT_frame_base: DW_OP_reg5 */
     62 
     63 .Ltype_int:
     64 	.uleb128	3			/* Abbrev: DW_TAG_base_type */
     65 	.ascii		"int\0"			/* DW_AT_name */
     66 	.byte		4			/* DW_AT_byte_size */
     67 	.byte		5			/* DW_AT_encoding */
     68 
     69 	.byte		0			/* End of children of CU */
     70 
     71 .Lcu1_end:
     72 
     73 /* Line table */
     74 	.section .debug_line
     75 .Lline1_begin:
     76 	.4byte		.Lline1_end - .Lline1_start	/* Initial length */
     77 .Lline1_start:
     78 	.2byte		2			/* Version */
     79 	.4byte		.Lline1_lines - .Lline1_hdr	/* header_length */
     80 .Lline1_hdr:
     81 	.byte		1			/* Minimum insn length */
     82 	.byte		1			/* default_is_stmt */
     83 	.byte		1			/* line_base */
     84  	.byte		1			/* line_range */
     85 	.byte		0x10			/* opcode_base */
     86 
     87 	/* Standard lengths */
     88 	.byte		0
     89 	.byte		1
     90 	.byte		1
     91 	.byte		1
     92 	.byte		1
     93 	.byte		0
     94 	.byte		0
     95 	.byte		0
     96 	.byte		1
     97 	.byte		0
     98 	.byte		0
     99 	.byte		1
    100 	.byte		0
    101 	.byte		0
    102 	.byte		0
    103 
    104 	/* Include directories */
    105 	.byte		0
    106 
    107 	/* File names */
    108 	.ascii		"file1.txt\0"
    109 	.uleb128	0
    110 	.uleb128	0
    111 	.uleb128	0
    112 
    113 	.byte		0
    114 
    115 .Lline1_lines:
    116 	.byte		0	/* DW_LNE_set_address */
    117 	.uleb128	5
    118 	.byte		2
    119 	.4byte		.Lbegin_func_cu2
    120 
    121 	.byte		3	/* DW_LNS_advance_line */
    122 	.sleb128	3	/* ... to 4 */
    123 
    124 	.byte		1	/* DW_LNS_copy */
    125 
    126 	.byte		1	/* DW_LNS_copy (second time as an end-of-prologue marker) */
    127 
    128 	.byte		0	/* DW_LNE_set_address */
    129 	.uleb128	5
    130 	.byte		2
    131 	.4byte		.Lend_func_cu2
    132 
    133 	.byte		0	/* DW_LNE_end_of_sequence */
    134 	.uleb128	1
    135 	.byte		1
    136 
    137 .Lline1_end:
    138 
    139 /* Abbrev table */
    140 	.section .debug_abbrev
    141 .Labbrev1_begin:
    142 	.uleb128	1			/* Abbrev code */
    143 	.uleb128	0x11			/* DW_TAG_compile_unit */
    144 	.byte		1			/* has_children */
    145 	.uleb128	0x10			/* DW_AT_stmt_list */
    146 	.uleb128	0x6			/* DW_FORM_data4 */
    147 	.uleb128	0x12			/* DW_AT_high_pc */
    148 	.uleb128	0x1			/* DW_FORM_addr */
    149 	.uleb128	0x11			/* DW_AT_low_pc */
    150 	.uleb128	0x1			/* DW_FORM_addr */
    151 	.uleb128	0x3			/* DW_AT_name */
    152 	.uleb128	0x8			/* DW_FORM_string */
    153 	.uleb128	0x25			/* DW_AT_producer */
    154 	.uleb128	0x8			/* DW_FORM_string */
    155 	.uleb128	0x13			/* DW_AT_language */
    156 	.uleb128	0xb			/* DW_FORM_data1 */
    157 	.byte		0x0			/* Terminator */
    158 	.byte		0x0			/* Terminator */
    159 
    160 	.uleb128	2			/* Abbrev code */
    161 	.uleb128	0x2e			/* DW_TAG_subprogram */
    162 	.byte		0			/* has_children */
    163 	.uleb128	0x3f			/* DW_AT_external */
    164 	.uleb128	0xc			/* DW_FORM_flag */
    165 	.uleb128	0x3a			/* DW_AT_decl_file */
    166 	.uleb128	0xb			/* DW_FORM_data1 */
    167 	.uleb128	0x3b			/* DW_AT_decl_line */
    168 	.uleb128	0xb			/* DW_FORM_data1 */
    169 	.uleb128	0x3			/* DW_AT_name */
    170 	.uleb128	0x8			/* DW_FORM_string */
    171 	.uleb128	0x49			/* DW_AT_type */
    172 	.uleb128	0x13			/* DW_FORM_ref4 */
    173 	.uleb128	0x11			/* DW_AT_low_pc */
    174 	.uleb128	0x1			/* DW_FORM_addr */
    175 	.uleb128	0x12			/* DW_AT_high_pc */
    176 	.uleb128	0x1			/* DW_FORM_addr */
    177 	.uleb128	0x40			/* DW_AT_frame_base */
    178 	.uleb128	0xa			/* DW_FORM_block1 */
    179 	.byte		0x0			/* Terminator */
    180 	.byte		0x0			/* Terminator */
    181 
    182 	.uleb128	3			/* Abbrev code */
    183 	.uleb128	0x24			/* DW_TAG_base_type */
    184 	.byte		0			/* has_children */
    185 	.uleb128	0x3			/* DW_AT_name */
    186 	.uleb128	0x8			/* DW_FORM_string */
    187 	.uleb128	0xb			/* DW_AT_byte_size */
    188 	.uleb128	0xb			/* DW_FORM_data1 */
    189 	.uleb128	0x3e			/* DW_AT_encoding */
    190 	.uleb128	0xb			/* DW_FORM_data1 */
    191 	.byte		0x0			/* Terminator */
    192 	.byte		0x0			/* Terminator */
    193 
    194 	.byte		0x0			/* Terminator */
    195 	.byte		0x0			/* Terminator */
    196 
    197 	.section	.debug_pubnames,"",%progbits
    198 	.4byte	0x19
    199 	.2byte	0x2
    200 	.4byte	.Lcu1_begin
    201 	.4byte	0x43
    202 	.4byte	0x25
    203 	.string	"func_cu2"
    204 	.4byte	0x0
    205 	.section	.debug_aranges,"",%progbits
    206 	.4byte	0x1c
    207 	.2byte	0x2
    208 	.4byte	.Lcu1_begin
    209 	.byte	0x4
    210 	.byte	0x0
    211 	.2byte	0x0
    212 	.2byte	0x0
    213 	.4byte	.Lbegin_text1
    214 	.4byte	.Lbegin_text1-.Lend_text1
    215 	.4byte	0x0
    216 	.4byte	0x0
    217