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