Home | History | Annotate | Download | only in binutils-all
      1 /* This testcase is derived from a similar test in GDB.
      2 
      3    Copyright (C) 2008-2016 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 	.globl _start
     22 _start:
     23 	.4byte 0
     24 .Lbegin_text1:
     25 	.globl func_cu1
     26 	.type func_cu1, %function
     27 func_cu1:
     28 .Lbegin_func_cu1:
     29 	.4byte 0
     30 .Lend_func_cu1:
     31 	.size func_cu1, .-func_cu1
     32 .Lend_text1:
     33 
     34 /* Debug information */
     35 
     36 	.section .debug_info
     37 .Lcu1_begin:
     38 	/* CU header */
     39 	.4byte	.Lcu1_end - .Lcu1_start		/* Length of Compilation Unit */
     40 .Lcu1_start:
     41 	.2byte	2				/* DWARF Version */
     42 	.4byte	.Labbrev1_begin			/* Offset into abbrev section */
     43 	.byte	4				/* Pointer size */
     44 
     45 	/* CU die */
     46 	.uleb128 1				/* Abbrev: DW_TAG_compile_unit */
     47 	.4byte	.Lline1_begin			/* DW_AT_stmt_list */
     48 	.4byte	.Lend_text1			/* DW_AT_high_pc */
     49 	.4byte	.Lbegin_text1			/* DW_AT_low_pc */
     50 	.ascii	"file1.txt\0"			/* DW_AT_name */
     51 	.ascii	"GNU C 3.3.3\0"			/* DW_AT_producer */
     52 	.byte	1				/* DW_AT_language (C) */
     53 
     54 	/* func_cu1 */
     55 	.uleb128	2			/* Abbrev: DW_TAG_subprogram */
     56 	.byte		1			/* DW_AT_external */
     57 	.byte		1			/* DW_AT_decl_file */
     58 	.byte		2			/* DW_AT_decl_line */
     59 	.ascii		"func_cu1\0"		/* DW_AT_name */
     60 	.4byte		.Ltype_int-.Lcu1_begin	/* DW_AT_type */
     61 	.4byte		.Lbegin_func_cu1	/* DW_AT_low_pc */
     62 	.4byte		.Lend_func_cu1		/* DW_AT_high_pc */
     63 	.byte		1			/* DW_AT_frame_base: length */
     64 	.byte		0x55			/* DW_AT_frame_base: DW_OP_reg5 */
     65 
     66 .Ltype_int:
     67 	.uleb128	3			/* Abbrev: DW_TAG_base_type */
     68 	.ascii		"int\0"			/* DW_AT_name */
     69 	.byte		4			/* DW_AT_byte_size */
     70 	.byte		5			/* DW_AT_encoding */
     71 
     72 	.byte		0			/* End of children of CU */
     73 
     74 .Lcu1_end:
     75 
     76 /* Line table */
     77 	.section .debug_line
     78 .Lline1_begin:
     79 	.4byte		.Lline1_end - .Lline1_start	/* Initial length */
     80 .Lline1_start:
     81 	.2byte		2			/* Version */
     82 	.4byte		.Lline1_lines - .Lline1_hdr	/* header_length */
     83 .Lline1_hdr:
     84 	.byte		1			/* Minimum insn length */
     85 	.byte		1			/* default_is_stmt */
     86 	.byte		1			/* line_base */
     87  	.byte		1			/* line_range */
     88 	.byte		0x10			/* opcode_base */
     89 
     90 	/* Standard lengths */
     91 	.byte		0
     92 	.byte		1
     93 	.byte		1
     94 	.byte		1
     95 	.byte		1
     96 	.byte		0
     97 	.byte		0
     98 	.byte		0
     99 	.byte		1
    100 	.byte		0
    101 	.byte		0
    102 	.byte		1
    103 	.byte		0
    104 	.byte		0
    105 	.byte		0
    106 
    107 	/* Include directories */
    108 	.byte		0
    109 
    110 	/* File names */
    111 	.ascii		"file1.txt\0"
    112 	.uleb128	0
    113 	.uleb128	0
    114 	.uleb128	0
    115 
    116 	.byte		0
    117 
    118 .Lline1_lines:
    119 	.byte		0	/* DW_LNE_set_address */
    120 	.uleb128	5
    121 	.byte		2
    122 	.4byte		.Lbegin_func_cu1
    123 
    124 	.byte		3	/* DW_LNS_advance_line */
    125 	.sleb128	3	/* ... to 4 */
    126 
    127 	.byte		1	/* DW_LNS_copy */
    128 
    129 	.byte		1	/* DW_LNS_copy (second time as an end-of-prologue marker) */
    130 
    131 	.byte		0	/* DW_LNE_set_address */
    132 	.uleb128	5
    133 	.byte		2
    134 	.4byte		.Lend_func_cu1
    135 
    136 	.byte		0	/* DW_LNE_end_of_sequence */
    137 	.uleb128	1
    138 	.byte		1
    139 
    140 .Lline1_end:
    141 
    142 /* Abbrev table */
    143 	.section .debug_abbrev
    144 .Labbrev1_begin:
    145 	.uleb128	1			/* Abbrev code */
    146 	.uleb128	0x11			/* DW_TAG_compile_unit */
    147 	.byte		1			/* has_children */
    148 	.uleb128	0x10			/* DW_AT_stmt_list */
    149 	.uleb128	0x6			/* DW_FORM_data4 */
    150 	.uleb128	0x12			/* DW_AT_high_pc */
    151 	.uleb128	0x1			/* DW_FORM_addr */
    152 	.uleb128	0x11			/* DW_AT_low_pc */
    153 	.uleb128	0x1			/* DW_FORM_addr */
    154 	.uleb128	0x3			/* DW_AT_name */
    155 	.uleb128	0x8			/* DW_FORM_string */
    156 	.uleb128	0x25			/* DW_AT_producer */
    157 	.uleb128	0x8			/* DW_FORM_string */
    158 	.uleb128	0x13			/* DW_AT_language */
    159 	.uleb128	0xb			/* DW_FORM_data1 */
    160 	.byte		0x0			/* Terminator */
    161 	.byte		0x0			/* Terminator */
    162 
    163 	.uleb128	2			/* Abbrev code */
    164 	.uleb128	0x2e			/* DW_TAG_subprogram */
    165 	.byte		0			/* has_children */
    166 	.uleb128	0x3f			/* DW_AT_external */
    167 	.uleb128	0xc			/* DW_FORM_flag */
    168 	.uleb128	0x3a			/* DW_AT_decl_file */
    169 	.uleb128	0xb			/* DW_FORM_data1 */
    170 	.uleb128	0x3b			/* DW_AT_decl_line */
    171 	.uleb128	0xb			/* DW_FORM_data1 */
    172 	.uleb128	0x3			/* DW_AT_name */
    173 	.uleb128	0x8			/* DW_FORM_string */
    174 	.uleb128	0x49			/* DW_AT_type */
    175 	.uleb128	0x13			/* DW_FORM_ref4 */
    176 	.uleb128	0x11			/* DW_AT_low_pc */
    177 	.uleb128	0x1			/* DW_FORM_addr */
    178 	.uleb128	0x12			/* DW_AT_high_pc */
    179 	.uleb128	0x1			/* DW_FORM_addr */
    180 	.uleb128	0x40			/* DW_AT_frame_base */
    181 	.uleb128	0xa			/* DW_FORM_block1 */
    182 	.byte		0x0			/* Terminator */
    183 	.byte		0x0			/* Terminator */
    184 
    185 	.uleb128	3			/* Abbrev code */
    186 	.uleb128	0x24			/* DW_TAG_base_type */
    187 	.byte		0			/* has_children */
    188 	.uleb128	0x3			/* DW_AT_name */
    189 	.uleb128	0x8			/* DW_FORM_string */
    190 	.uleb128	0xb			/* DW_AT_byte_size */
    191 	.uleb128	0xb			/* DW_FORM_data1 */
    192 	.uleb128	0x3e			/* DW_AT_encoding */
    193 	.uleb128	0xb			/* DW_FORM_data1 */
    194 	.byte		0x0			/* Terminator */
    195 	.byte		0x0			/* Terminator */
    196 
    197 	.byte		0x0			/* Terminator */
    198 	.byte		0x0			/* Terminator */
    199