1/* This testcase is derived from a similar test in GDB.
2
3   Copyright (C) 2008-2020 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
31func_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