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 /* This tests that gdb can read compressed sections.  The contents
     19    are a basic assembly file, but the .debug_abbrev section has been
     20    comrpessed using zlib.  */
     21 
     22 /* Dummy function to provide debug information for.  */
     23 
     24 	.text
     25 	.globl _start
     26 _start:
     27 	.int 0
     28 .Lbegin_text1:
     29 	.globl func_cu1
     30 	.type func_cu1, %function
     31 func_cu1:
     32 .Lbegin_func_cu1:
     33 	.int 0
     34 .Lend_func_cu1:
     35 	.size func_cu1, .-func_cu1
     36 .Lend_text1:
     37 
     38 /* Debug information */
     39 
     40 	.section .debug_info
     41 .Lcu1_begin:
     42 	/* CU header */
     43 	.4byte	.Lcu1_end - .Lcu1_start		/* Length of Compilation Unit */
     44 .Lcu1_start:
     45 	.2byte	2				/* DWARF Version */
     46 	.4byte	.Labbrev1_begin			/* Offset into abbrev section */
     47 	.byte	4				/* Pointer size */
     48 
     49 	/* CU die */
     50 	.uleb128 1				/* Abbrev: DW_TAG_compile_unit */
     51 	.4byte	.Lline1_begin			/* DW_AT_stmt_list */
     52 	.4byte	.Lend_text1			/* DW_AT_high_pc */
     53 	.4byte	.Lbegin_text1			/* DW_AT_low_pc */
     54 	.ascii	"file1.txt\0"			/* DW_AT_name */
     55 	.ascii	"GNU C 3.3.3\0"			/* DW_AT_producer */
     56 	.byte	1				/* DW_AT_language (C) */
     57 
     58 	/* func_cu1 */
     59 	.uleb128	2			/* Abbrev: DW_TAG_subprogram */
     60 	.byte		1			/* DW_AT_external */
     61 	.byte		1			/* DW_AT_decl_file */
     62 	.byte		2			/* DW_AT_decl_line */
     63 	.ascii		"func_cu1\0"		/* DW_AT_name */
     64 	.4byte		.Ltype_int-.Lcu1_begin	/* DW_AT_type */
     65 	.4byte		.Lbegin_func_cu1	/* DW_AT_low_pc */
     66 	.4byte		.Lend_func_cu1		/* DW_AT_high_pc */
     67 	.byte		1			/* DW_AT_frame_base: length */
     68 	.byte		0x55			/* DW_AT_frame_base: DW_OP_reg5 */
     69 
     70 .Ltype_int:
     71 	.uleb128	3			/* Abbrev: DW_TAG_base_type */
     72 	.ascii		"int\0"			/* DW_AT_name */
     73 	.byte		4			/* DW_AT_byte_size */
     74 	.byte		5			/* DW_AT_encoding */
     75 
     76 	.byte		0			/* End of children of CU */
     77 
     78 .Lcu1_end:
     79 
     80 /* Line table */
     81 	.section .debug_line
     82 .Lline1_begin:
     83 	.4byte		.Lline1_end - .Lline1_start	/* Initial length */
     84 .Lline1_start:
     85 	.2byte		2			/* Version */
     86 	.4byte		.Lline1_lines - .Lline1_hdr	/* header_length */
     87 .Lline1_hdr:
     88 	.byte		1			/* Minimum insn length */
     89 	.byte		1			/* default_is_stmt */
     90 	.byte		1			/* line_base */
     91  	.byte		1			/* line_range */
     92 	.byte		0x10			/* opcode_base */
     93 
     94 	/* Standard lengths */
     95 	.byte		0
     96 	.byte		1
     97 	.byte		1
     98 	.byte		1
     99 	.byte		1
    100 	.byte		0
    101 	.byte		0
    102 	.byte		0
    103 	.byte		1
    104 	.byte		0
    105 	.byte		0
    106 	.byte		1
    107 	.byte		0
    108 	.byte		0
    109 	.byte		0
    110 
    111 	/* Include directories */
    112 	.byte		0
    113 
    114 	/* File names */
    115 	.ascii		"file1.txt\0"
    116 	.uleb128	0
    117 	.uleb128	0
    118 	.uleb128	0
    119 
    120 	.byte		0
    121 
    122 .Lline1_lines:
    123 	.byte		0	/* DW_LNE_set_address */
    124 	.uleb128	5
    125 	.byte		2
    126 	.4byte		.Lbegin_func_cu1
    127 
    128 	.byte		3	/* DW_LNS_advance_line */
    129 	.sleb128	3	/* ... to 4 */
    130 
    131 	.byte		1	/* DW_LNS_copy */
    132 
    133 	.byte		1	/* DW_LNS_copy (second time as an end-of-prologue marker) */
    134 
    135 	.byte		0	/* DW_LNE_set_address */
    136 	.uleb128	5
    137 	.byte		2
    138 	.4byte		.Lend_func_cu1
    139 
    140 	.byte		0	/* DW_LNE_end_of_sequence */
    141 	.uleb128	1
    142 	.byte		1
    143 
    144 .Lline1_end:
    145 
    146 /* Abbrev table -- compressed */
    147 	.section .zdebug_abbrev
    148 .Labbrev1_begin:
    149 	.ascii		"ZLIB"
    150 	.4byte		0
    151 	.2byte		0
    152 	.byte		0
    153 	.byte		51
    154 	.byte		0x78
    155 	.byte		0x5e
    156 	.byte		0x63
    157 	.byte		0x14
    158 	.byte		0x64
    159 	.byte		0x14
    160 	.byte		0x60
    161 	.byte		0x13
    162 	.byte		0x62
    163 	.byte		0x14
    164 	.byte		0x64
    165 	.byte		0x64
    166 	.byte		0xe6
    167 	.byte		0x50
    168 	.byte		0xe5
    169 	.byte		0x10
    170 	.byte		0xe6
    171 	.byte		0x66
    172 	.byte		0x60
    173 	.byte		0x60
    174 	.byte		0xd2
    175 	.byte		0x63
    176 	.byte		0xb0
    177 	.byte		0xe7
    178 	.byte		0xb1
    179 	.byte		0xe2
    180 	.byte		0xb6
    181 	.byte		0xe6
    182 	.byte		0x66
    183 	.byte		0xe6
    184 	.byte		0xf0
    185 	.byte		0x14
    186 	.byte		0x16
    187 	.byte		0x64
    188 	.byte		0x14
    189 	.byte		0x62
    190 	.byte		0x74
    191 	.byte		0xe0
    192 	.byte		0x02
    193 	.byte		0x00
    194 	.byte		0x25
    195 	.byte		0x78
    196 	.byte		0x02
    197 	.byte		0x81
    198 	.byte		0x78
    199 	.byte		0x9c
    200 	.byte		0x63
    201 	.byte		0x60
    202 	.byte		0x60
    203 	.byte		0x56
    204 	.byte		0x61
    205 	.byte		0x60
    206 	.byte		0xe6
    207 	.byte		0xe0
    208 	.byte		0xe6
    209 	.byte		0xb6
    210 	.byte		0xe3
    211 	.byte		0x66
    212 	.byte		0x00
    213 	.byte		0x02
    214 	.byte		0x00
    215 	.byte		0x04
    216 	.byte		0x9c
    217 	.byte		0x00
    218 	.byte		0x92
    219