*** empty log message ***
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.mi / mi-var-child.exp
1 # Copyright 1999, 2000, 2001, 2002, 2004, 2005, 2007
2 # Free Software Foundation, Inc.
3
4 # This Program Is Free software; you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation; either version 2 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18 # Test essential Machine interface (MI) operations
19 #
20 # Verify that, using the MI, we can create, update, delete variables.
21 #
22
23
24 load_lib mi-support.exp
25 set MIFLAGS "-i=mi"
26
27 gdb_exit
28 if [mi_gdb_start] {
29 continue
30 }
31
32 set testfile "mi-var-child"
33 set srcfile ${testfile}.c
34 set binfile ${objdir}/${subdir}/${testfile}
35 if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } {
36 untested mi-var-child.exp
37 return -1
38 }
39
40 mi_delete_breakpoints
41 mi_gdb_reinitialize_dir $srcdir/$subdir
42 mi_gdb_load ${binfile}
43
44 mi_runto do_children_tests
45
46 ##### #####
47 # #
48 # children tests #
49 # #
50 ##### #####
51
52 # Step past the initialization of struct_declarations.
53 set line_weird [gdb_get_line_number "weird = &struct_declarations;"]
54 mi_execute_to "exec-next" "end-stepping-range" do_children_tests {} ".*${srcfile}" \
55 [expr $line_weird] {} "step \$line_weird"
56
57 # Test: c_variable-4.2
58 # Desc: create variable "struct_declarations"
59 mi_create_varobj struct_declarations struct_declarations \
60 "create local variable struct_declarations"
61
62 # Test: c_variable-4.3
63 # Desc: children of struct_declarations
64 # STABS doesn't give us argument types for the func ptr structs, but
65 # Dwarf 2 does.
66 mi_gdb_test "-var-list-children struct_declarations" \
67 "\\^done,numchild=\"11\",children=\\\[child=\{name=\"struct_declarations.integer\",exp=\"integer\",numchild=\"0\",type=\"int\"\},child=\{name=\"struct_declarations.character\",exp=\"character\",numchild=\"0\",type=\"char\"\},child={name=\"struct_declarations.char_ptr\",exp=\"char_ptr\",numchild=\"1\",type=\"char \\*\"\},child=\{name=\"struct_declarations.long_int\",exp=\"long_int\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.int_ptr_ptr\",exp=\"int_ptr_ptr\",numchild=\"1\",type=\"int \\*\\*\"\},child=\{name=\"struct_declarations.long_array\",exp=\"long_array\",numchild=\"12\",type=\"long int \\\[12\\\]\"\},child=\{name=\"struct_declarations.func_ptr\",exp=\"func_ptr\",numchild=\"0\",type=\"void \\(\\*\\)\\((void)?\\)\"\},child=\{name=\"struct_declarations.func_ptr_struct\",exp=\"func_ptr_struct\",numchild=\"0\",type=\"struct _struct_decl \\(\\*\\)\\((int, char \\*, long int)?\\)\"\},child=\{name=\"struct_declarations.func_ptr_ptr\",exp=\"func_ptr_ptr\",numchild=\"0\",type=\"struct _struct_decl \\*\\(\\*\\)\\((int, char \\*, long int)?\\)\"\},child=\{name=\"struct_declarations.u1\",exp=\"u1\",numchild=\"4\",type=\"union \{\\.\\.\\.\}\"\},child=\{name=\"struct_declarations.s2\",exp=\"s2\",numchild=\"4\",type=\"struct \{\\.\\.\\.\}\"\}\\\]" \
68 "get children of struct_declarations"
69
70 #gdbtk_test c_variable-4.3 {children of struct_declarations} {
71 # get_children struct_declarations
72 #} {integer character char_ptr long_int int_ptr_ptr long_array func_ptr func_ptr_struct func_ptr_ptr u1 s2}
73
74 # Test: c_variable-4.4
75 # Desc: number of children of struct_declarations
76 mi_gdb_test "-var-info-num-children struct_declarations" \
77 "\\^done,numchild=\"11\"" \
78 "get number of children of struct_declarations"
79
80 # Test: c_variable-4.5
81 # Desc: children of struct_declarations.integer
82 mi_gdb_test "-var-list-children struct_declarations.integer" \
83 "\\^done,numchild=\"0\"" \
84 "get children of struct_declarations.integer"
85
86 # Test: c_variable-4.6
87 # Desc: number of children of struct_declarations.integer
88 mi_gdb_test "-var-info-num-children struct_declarations.integer" \
89 "\\^done,numchild=\"0\"" \
90 "get number of children of struct_declarations.integer"
91
92 # Test: c_variable-4.7
93 # Desc: children of struct_declarations.character
94 mi_gdb_test "-var-list-children struct_declarations.character" \
95 "\\^done,numchild=\"0\"" \
96 "get children of struct_declarations.character"
97
98 # Test: c_variable-4.8
99 # Desc: number of children of struct_declarations.character
100 mi_gdb_test "-var-info-num-children struct_declarations.character" \
101 "\\^done,numchild=\"0\"" \
102 "get number of children of struct_declarations.character"
103
104 # Test: c_variable-4.9
105 # Desc: children of struct_declarations.char_ptr
106 mi_gdb_test "-var-list-children struct_declarations.char_ptr" \
107 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"struct_declarations.char_ptr.\\*char_ptr\",exp=\"\\*char_ptr\",numchild=\"0\",type=\"char\"\}\\\]" \
108 "get children of struct_declarations.char_ptr"
109
110 # Test: c_variable-4.10
111 # Desc: number of children of struct_declarations.char_ptr
112 mi_gdb_test "-var-info-num-children struct_declarations.char_ptr" \
113 "\\^done,numchild=\"1\"" \
114 "get number of children of struct_declarations.char_ptr"
115
116 # Test: c_variable-4.11
117 # Desc: children of struct_declarations.long_int
118 mi_gdb_test "-var-list-children struct_declarations.long_int" \
119 "\\^done,numchild=\"0\"" \
120 "get children of struct_declarations.long_int"
121
122 # Test: c_variable-4.12
123 # Desc: number of children of struct_declarations.long_int
124 mi_gdb_test "-var-info-num-children struct_declarations.long_int" \
125 "\\^done,numchild=\"0\"" \
126 "get number of children of struct_declarations.long_int"
127
128 # Test: c_variable-4.13
129 # Desc: children of int_ptr_ptr
130 mi_gdb_test "-var-list-children struct_declarations.int_ptr_ptr" \
131 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"struct_declarations.int_ptr_ptr.\\*int_ptr_ptr\",exp=\"\\*int_ptr_ptr\",numchild=\"1\",type=\"int \\*\"\}\\\]" \
132 "get children of struct_declarations.int_ptr_ptr"
133
134 #gdbtk_test c_variable-4.13 {children of int_ptr_ptr} {
135 # get_children struct_declarations.int_ptr_ptr
136 #} {*int_ptr_ptr}
137
138 # Test: c_variable-4.14
139 # Desc: number of children of int_ptr_ptr
140 mi_gdb_test "-var-info-num-children struct_declarations.int_ptr_ptr" \
141 "\\^done,numchild=\"1\"" \
142 "get number of children of struct_declarations.int_ptr_ptr"
143
144
145 # Test: c_variable-4.15
146 # Desc: children of struct_declarations.long_array
147 mi_gdb_test "-var-list-children struct_declarations.long_array" \
148 "\\^done,numchild=\"12\",children=\\\[child=\{name=\"struct_declarations.long_array.0\",exp=\"0\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.1\",exp=\"1\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.2\",exp=\"2\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.3\",exp=\"3\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.4\",exp=\"4\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.5\",exp=\"5\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.6\",exp=\"6\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.7\",exp=\"7\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.8\",exp=\"8\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.9\",exp=\"9\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.10\",exp=\"10\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.11\",exp=\"11\",numchild=\"0\",type=\"long int\"\}\\\]" \
149 "get children of struct_declarations.long_array"
150
151 # Test: c_variable-4.16
152 # Desc: number of children of struct_declarations.long_array
153 mi_gdb_test "-var-info-num-children struct_declarations.long_array" \
154 "\\^done,numchild=\"12\"" \
155 "get number of children of struct_declarations.long_array"
156
157 # Test: c_variable-4.17
158 # Desc: children of struct_declarations.func_ptr
159 mi_gdb_test "-var-list-children struct_declarations.func_ptr" \
160 "\\^done,numchild=\"0\"" \
161 "get children of struct_declarations.func_ptr"
162
163
164 # Test: c_variable-4.18
165 # Desc: number of children of struct_declarations.func_ptr
166 mi_gdb_test "-var-info-num-children struct_declarations.func_ptr" \
167 "\\^done,numchild=\"0\"" \
168 "get number of children of struct_declarations.func_ptr"
169
170
171 # Test: c_variable-4.19
172 # Desc: children of struct_declarations.func_ptr_struct
173 mi_gdb_test "-var-list-children struct_declarations.func_ptr_struct" \
174 "\\^done,numchild=\"0\"" \
175 "get children of struct_declarations.func_ptr_struct"
176
177 # Test: c_variable-4.20
178 # Desc: number of children of struct_declarations.func_ptr_struct
179 mi_gdb_test "-var-info-num-children struct_declarations.func_ptr_struct" \
180 "\\^done,numchild=\"0\"" \
181 "get number of children of struct_declarations.func_ptr_struct"
182
183
184 # Test: c_variable-4.21
185 # Desc: children of struct_declarations.func_ptr_ptr
186 mi_gdb_test "-var-list-children struct_declarations.func_ptr_ptr" \
187 "\\^done,numchild=\"0\"" \
188 "get children of struct_declarations.func_ptr_ptr"
189
190 # Test: c_variable-4.22
191 # Desc: number of children of struct_declarations.func_ptr_ptr
192 mi_gdb_test "-var-info-num-children struct_declarations.func_ptr_ptr" \
193 "\\^done,numchild=\"0\"" \
194 "get number of children of struct_declarations.func_ptr_ptr"
195
196
197 # Test: c_variable-4.23
198 # Desc: children of struct_declarations.u1
199 mi_gdb_test "-var-list-children struct_declarations.u1" \
200 "\\^done,numchild=\"4\",children=\\\[child=\{name=\"struct_declarations.u1.a\",exp=\"a\",numchild=\"0\",type=\"int\"\},child=\{name=\"struct_declarations.u1.b\",exp=\"b\",numchild=\"1\",type=\"char \\*\"\},child=\{name=\"struct_declarations.u1.c\",exp=\"c\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.u1.d\",exp=\"d\",numchild=\"0\",type=\"enum foo\"\}\\\]" \
201 "get children of struct_declarations.u1"
202
203 # Test: c_variable-4.24
204 # Desc: number of children of struct_declarations.u1
205 mi_gdb_test "-var-info-num-children struct_declarations.u1" \
206 "\\^done,numchild=\"4\"" \
207 "get number of children of struct_declarations.u1"
208
209 # Test: c_variable-4.25
210 # Desc: children of struct_declarations.s2
211 mi_gdb_test "-var-list-children struct_declarations.s2" \
212 "\\^done,numchild=\"4\",children=\\\[child=\{name=\"struct_declarations.s2.u2\",exp=\"u2\",numchild=\"3\",type=\"union \{\\.\\.\\.\}\"\},child=\{name=\"struct_declarations.s2.g\",exp=\"g\",numchild=\"0\",type=\"int\"\},child=\{name=\"struct_declarations.s2.h\",exp=\"h\",numchild=\"0\",type=\"char\"\},child=\{name=\"struct_declarations.s2.i\",exp=\"i\",numchild=\"10\",type=\"long int \\\[10\\\]\"\}\\\]" \
213 "get children of struct_declarations.s2"
214 #gdbtk_test c_variable-4.25 {children of struct_declarations.s2} {
215 # get_children struct_declarations.s2
216 #} {u2 g h i}
217
218 # Test: c_variable-4.26
219 # Desc: number of children of struct_declarations.s2
220 mi_gdb_test "-var-info-num-children struct_declarations.s2" \
221 "\\^done,numchild=\"4\"" \
222 "get number of children of struct_declarations.s2"
223
224
225 # Test: c_variable-4.27
226 # Desc: children of struct_declarations.long_array.1
227 mi_gdb_test "-var-list-children struct_declarations.long_array.1" \
228 "\\^done,numchild=\"0\"" \
229 "get children of struct_declarations.long_array.1"
230
231 # Test: c_variable-4.28
232 # Desc: number of children of struct_declarations.long_array.1
233 mi_gdb_test "-var-info-num-children struct_declarations.long_array.1" \
234 "\\^done,numchild=\"0\"" \
235 "get number of children of struct_declarations.long_array.1"
236
237 # Test: c_variable-4.29
238 # Desc: children of struct_declarations.long_array.2
239 mi_gdb_test "-var-list-children struct_declarations.long_array.2" \
240 "\\^done,numchild=\"0\"" \
241 "get children of struct_declarations.long_array.2"
242
243 # Test: c_variable-4.30
244 # Desc: number of children of struct_declarations.long_array.2
245 mi_gdb_test "-var-info-num-children struct_declarations.long_array.2" \
246 "\\^done,numchild=\"0\"" \
247 "get number of children of struct_declarations.long_array.2"
248
249 # Test: c_variable-4.31
250 # Desc: children of struct_declarations.long_array.3
251 mi_gdb_test "-var-list-children struct_declarations.long_array.3" \
252 "\\^done,numchild=\"0\"" \
253 "get children of struct_declarations.long_array.3"
254
255 # Test: c_variable-4.32
256 # Desc: number of children of struct_declarations.long_array.3
257 mi_gdb_test "-var-info-num-children struct_declarations.long_array.3" \
258 "\\^done,numchild=\"0\"" \
259 "get number of children of struct_declarations.long_array.3"
260
261 # Test: c_variable-4.33
262 # Desc: children of struct_declarations.long_array.4
263 mi_gdb_test "-var-list-children struct_declarations.long_array.4" \
264 "\\^done,numchild=\"0\"" \
265 "get children of struct_declarations.long_array.4"
266
267 # Test: c_variable-4.34
268 # Desc: number of children of struct_declarations.long_array.4
269 mi_gdb_test "-var-info-num-children struct_declarations.long_array.4" \
270 "\\^done,numchild=\"0\"" \
271 "get number of children of struct_declarations.long_array.4"
272
273 # Test: c_variable-4.35
274 # Desc: children of struct_declarations.long_array.5
275 mi_gdb_test "-var-list-children struct_declarations.long_array.5" \
276 "\\^done,numchild=\"0\"" \
277 "get children of struct_declarations.long_array.5"
278
279 # Test: c_variable-4.36
280 # Desc: number of children of struct_declarations.long_array.5
281 mi_gdb_test "-var-info-num-children struct_declarations.long_array.5" \
282 "\\^done,numchild=\"0\"" \
283 "get number of children of struct_declarations.long_array.5"
284
285 # Test: c_variable-4.37
286 # Desc: children of struct_declarations.long_array.6
287 mi_gdb_test "-var-list-children struct_declarations.long_array.6" \
288 "\\^done,numchild=\"0\"" \
289 "get children of struct_declarations.long_array.6"
290
291 # Test: c_variable-4.38
292 # Desc: number of children of struct_declarations.long_array.6
293 mi_gdb_test "-var-info-num-children struct_declarations.long_array.6" \
294 "\\^done,numchild=\"0\"" \
295 "get number of children of struct_declarations.long_array.6"
296
297 # Test: c_variable-4.39
298 # Desc: children of struct_declarations.long_array.7
299 mi_gdb_test "-var-list-children struct_declarations.long_array.7" \
300 "\\^done,numchild=\"0\"" \
301 "get children of struct_declarations.long_array.7"
302
303 # Test: c_variable-4.40
304 # Desc: number of children of struct_declarations.long_array.7
305 mi_gdb_test "-var-info-num-children struct_declarations.long_array.7" \
306 "\\^done,numchild=\"0\"" \
307 "get number of children of struct_declarations.long_array.7"
308
309 # Test: c_variable-4.41
310 # Desc: children of struct_declarations.long_array.8
311 mi_gdb_test "-var-list-children struct_declarations.long_array.8" \
312 "\\^done,numchild=\"0\"" \
313 "get children of struct_declarations.long_array.8"
314
315 # Test: c_variable-4.42
316 # Desc: number of children of struct_declarations.long_array.8
317 mi_gdb_test "-var-info-num-children struct_declarations.long_array.8" \
318 "\\^done,numchild=\"0\"" \
319 "get number of children of struct_declarations.long_array.8"
320
321
322 # Test: c_variable-4.43
323 # Desc: children of struct_declarations.long_array.9
324 mi_gdb_test "-var-list-children struct_declarations.long_array.9" \
325 "\\^done,numchild=\"0\"" \
326 "get children of struct_declarations.long_array.9"
327
328 # Test: c_variable-4.44
329 # Desc: number of children of struct_declarations.long_array.9
330 mi_gdb_test "-var-info-num-children struct_declarations.long_array.9" \
331 "\\^done,numchild=\"0\"" \
332 "get number of children of struct_declarations.long_array.9"
333
334 # Test: c_variable-4.45
335 # Desc: children of struct_declarations.u1.a
336 mi_gdb_test "-var-list-children struct_declarations.u1.a" \
337 "\\^done,numchild=\"0\"" \
338 "get children of struct_declarations.u1.a"
339
340 # Test: c_variable-4.46
341 # Desc: number of children of struct_declarations.u1.a
342 mi_gdb_test "-var-info-num-children struct_declarations.u1.a" \
343 "\\^done,numchild=\"0\"" \
344 "get number of children of struct_declarations.u1.a"
345
346 # Test: c_variable-4.47
347 # Desc: children of struct_declarations.u1.b
348 mi_gdb_test "-var-list-children struct_declarations.u1.b" \
349 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"struct_declarations.u1.b.\\*b\",exp=\"\\*b\",numchild=\"0\",type=\"char\"\}\\\]" \
350 "get children of struct_declarations.u1.b"
351
352 # Test: c_variable-4.48
353 # Desc: number of children of struct_declarations.u1.b
354 mi_gdb_test "-var-info-num-children struct_declarations.u1.b" \
355 "\\^done,numchild=\"1\"" \
356 "get number of children of struct_declarations.u1.b"
357
358 # Test: c_variable-4.49
359 # Desc: children of struct_declarations.u1.c
360 mi_gdb_test "-var-list-children struct_declarations.u1.c" \
361 "\\^done,numchild=\"0\"" \
362 "get children of struct_declarations.u1.c"
363
364 # Test: c_variable-4.50
365 # Desc: number of children of struct_declarations.u1.c
366 mi_gdb_test "-var-info-num-children struct_declarations.u1.c" \
367 "\\^done,numchild=\"0\"" \
368 "get number of children of struct_declarations.u1.c"
369
370 # Test: c_variable-4.51
371 # Desc: children of struct_declarations.u1.d
372 mi_gdb_test "-var-list-children struct_declarations.u1.d" \
373 "\\^done,numchild=\"0\"" \
374 "get children of struct_declarations.u1.d"
375
376
377 # Test: c_variable-4.52
378 # Desc: number of children of struct_declarations.u1.d
379 mi_gdb_test "-var-info-num-children struct_declarations.u1.d" \
380 "\\^done,numchild=\"0\"" \
381 "get number of children of struct_declarations.u1.d"
382
383
384 # Test: c_variable-4.53
385 # Desc: children of struct_declarations.s2.u2
386 mi_gdb_test "-var-list-children struct_declarations.s2.u2" \
387 "\\^done,numchild=\"3\",children=\\\[child=\{name=\"struct_declarations.s2.u2.u1s1\",exp=\"u1s1\",numchild=\"4\",type=\"struct \{\\.\\.\\.\}\"\},child=\{name=\"struct_declarations.s2.u2.f\",exp=\"f\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.s2.u2.u1s2\",exp=\"u1s2\",numchild=\"2\",type=\"struct \{\\.\\.\\.\}\"\}\\\]" \
388 "get children of struct_declarations.s2.u2"
389
390 # Test: c_variable-4.54
391 # Desc: number of children of struct_declarations.s2.u2
392 mi_gdb_test "-var-info-num-children struct_declarations.s2.u2" \
393 "\\^done,numchild=\"3\"" \
394 "get number of children of struct_declarations.s2.u2"
395
396 # Test: c_variable-4.55
397 # Desc: children of struct_declarations.s2.g
398 mi_gdb_test "-var-list-children struct_declarations.s2.g" \
399 "\\^done,numchild=\"0\"" \
400 "get children of struct_declarations.s2.g"
401
402 # Test: c_variable-4.56
403 # Desc: number of children of struct_declarations.s2.g
404 mi_gdb_test "-var-info-num-children struct_declarations.s2.g" \
405 "\\^done,numchild=\"0\"" \
406 "get number of children of struct_declarations.s2.g"
407
408
409 # Test: c_variable-4.57
410 # Desc: children of struct_declarations.s2.h
411 mi_gdb_test "-var-list-children struct_declarations.s2.h" \
412 "\\^done,numchild=\"0\"" \
413 "get children of struct_declarations.s2.h"
414
415 # Test: c_variable-4.58
416 # Desc: number of children of struct_declarations.s2.h
417 mi_gdb_test "-var-info-num-children struct_declarations.s2.h" \
418 "\\^done,numchild=\"0\"" \
419 "get number of children of struct_declarations.s2.h"
420
421
422 # Test: c_variable-4.59
423 # Desc: children of struct_declarations.s2.i
424 mi_gdb_test "-var-list-children struct_declarations.s2.i" \
425 "\\^done,numchild=\"10\",children=\\\[child=\{name=\"struct_declarations.s2.i.0\",exp=\"0\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.s2.i.1\",exp=\"1\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.s2.i.2\",exp=\"2\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.s2.i.3\",exp=\"3\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.s2.i.4\",exp=\"4\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.s2.i.5\",exp=\"5\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.s2.i.6\",exp=\"6\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.s2.i.7\",exp=\"7\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.s2.i.8\",exp=\"8\",numchild=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.s2.i.9\",exp=\"9\",numchild=\"0\",type=\"long int\"\}\\\]" \
426 "get children of struct_declarations.s2.i"
427
428 # Test: c_variable-4.60
429 # Desc: number of children of struct_declarations.s2.i
430 mi_gdb_test "-var-info-num-children struct_declarations.s2.i" \
431 "\\^done,numchild=\"10\"" \
432 "get number of children of struct_declarations.s2.i"
433
434 # Test: c_variable-4.61
435 # Desc: children of struct_declarations.s2.u2.u1s1
436 mi_gdb_test "-var-list-children struct_declarations.s2.u2.u1s1" \
437 "\\^done,numchild=\"4\",children=\\\[child=\{name=\"struct_declarations.s2.u2.u1s1.d\",exp=\"d\",numchild=\"0\",type=\"int\"\},child=\{name=\"struct_declarations.s2.u2.u1s1.e\",exp=\"e\",numchild=\"10\",type=\"char \\\[10\\\]\"\},child=\{name=\"struct_declarations.s2.u2.u1s1.func\",exp=\"func\",numchild=\"0\",type=\"int \\*\\(\\*\\)\\((void)?\\)\"\},child=\{name=\"struct_declarations.s2.u2.u1s1.foo\",exp=\"foo\",numchild=\"0\",type=\"efoo\"\}\\\]" \
438 "get children of struct_declarations.s2.u2.u1s1"
439
440 # Test: c_variable-4.62
441 # Desc: number of children of struct_declarations.s2.u2.u1s1
442 mi_gdb_test "-var-info-num-children struct_declarations.s2.u2.u1s1" \
443 "\\^done,numchild=\"4\"" \
444 "get number of children of struct_declarations.s2.u2.u1s1"
445
446 # Test: c_variable-4.63
447 # Desc: children of struct_declarations.s2.u2.f
448 mi_gdb_test "-var-list-children struct_declarations.s2.u2.f" \
449 "\\^done,numchild=\"0\"" \
450 "get children of struct_declarations.s2.u2.f"
451
452 # Test: c_variable-4.64
453 # Desc: number of children of struct_declarations.s2.u2.f
454 mi_gdb_test "-var-info-num-children struct_declarations.s2.u2.f" \
455 "\\^done,numchild=\"0\"" \
456 "get number of children of struct_declarations.s2.u2.f"
457
458 # Test: c_variable-4.65
459 # Desc: children of struct_declarations.s2.u2.u1s2
460 mi_gdb_test "-var-list-children struct_declarations.s2.u2.u1s2" \
461 "\\^done,numchild=\"2\",children=\\\[child=\{name=\"struct_declarations.s2.u2.u1s2.array_ptr\",exp=\"array_ptr\",numchild=\"2\",type=\"char \\\[2\\\]\"\},child=\{name=\"struct_declarations.s2.u2.u1s2.func\",exp=\"func\",numchild=\"0\",type=\"int \\(\\*\\)\\((int, char \\*)?\\)\"\}\\\]" \
462 "get children of struct_declarations.s2.u2.u1s2"
463
464 # Test: c_variable-4.66
465 # Desc: number of children of struct_declarations.s2.u2.u1s2
466 mi_gdb_test "-var-info-num-children struct_declarations.s2.u2.u1s2" \
467 "\\^done,numchild=\"2\"" \
468 "get number of children of struct_declarations.s2.u2.u1s2"
469
470 # Test: c_variable-4.67
471 # Desc: children of struct_declarations.s2.u2.u1s1.d
472 mi_gdb_test "-var-list-children struct_declarations.s2.u2.u1s1.d" \
473 "\\^done,numchild=\"0\"" \
474 "get children of struct_declarations.s2.u2.u1s1.d"
475
476 # Test: c_variable-4.68
477 # Desc: number of children of struct_declarations.s2.u2.u1s1.d
478 mi_gdb_test "-var-info-num-children struct_declarations.s2.u2.u1s1.d" \
479 "\\^done,numchild=\"0\"" \
480 "get number of children of struct_declarations.s2.u2.u1s1.d"
481
482 # Test: c_variable-4.69
483 # Desc: children of struct_declarations.s2.u2.u1s1.e
484 mi_gdb_test "-var-list-children struct_declarations.s2.u2.u1s1.e" \
485 "\\^done,numchild=\"10\",children=\\\[child=\{name=\"struct_declarations.s2.u2.u1s1.e.0\",exp=\"0\",numchild=\"0\",type=\"char\"\},child=\{name=\"struct_declarations.s2.u2.u1s1.e.1\",exp=\"1\",numchild=\"0\",type=\"char\"\},child=\{name=\"struct_declarations.s2.u2.u1s1.e.2\",exp=\"2\",numchild=\"0\",type=\"char\"\},child={name=\"struct_declarations.s2.u2.u1s1.e.3\",exp=\"3\",numchild=\"0\",type=\"char\"\},child=\{name=\"struct_declarations.s2.u2.u1s1.e.4\",exp=\"4\",numchild=\"0\",type=\"char\"\},child=\{name=\"struct_declarations.s2.u2.u1s1.e.5\",exp=\"5\",numchild=\"0\",type=\"char\"\},child=\{name=\"struct_declarations.s2.u2.u1s1.e.6\",exp=\"6\",numchild=\"0\",type=\"char\"\},child=\{name=\"struct_declarations.s2.u2.u1s1.e.7\",exp=\"7\",numchild=\"0\",type=\"char\"\},child=\{name=\"struct_declarations.s2.u2.u1s1.e.8\",exp=\"8\",numchild=\"0\",type=\"char\"\},child=\{name=\"struct_declarations.s2.u2.u1s1.e.9\",exp=\"9\",numchild=\"0\",type=\"char\"\}\\\]" \
486 "get children of struct_declarations.s2.u2.u1s1.e"
487
488 # Test: c_variable-4.70
489 # Desc: number of children of struct_declarations.s2.u2.u1s1.e
490 mi_gdb_test "-var-info-num-children struct_declarations.s2.u2.u1s1.e" \
491 "\\^done,numchild=\"10\"" \
492 "get number of children of struct_declarations.s2.u2.u1s1.e"
493
494
495 # Test: c_variable-4.71
496 # Desc: children of struct_declarations.s2.u2.u1s1.func
497 mi_gdb_test "-var-list-children struct_declarations.s2.u2.u1s1.func" \
498 "\\^done,numchild=\"0\"" \
499 "get children of struct_declarations.s2.u2.u1s1.func"
500
501 # Test: c_variable-4.72
502 # Desc: number of children of struct_declarations.s2.u2.u1s1.func
503 mi_gdb_test "-var-info-num-children struct_declarations.s2.u2.u1s1.func" \
504 "\\^done,numchild=\"0\"" \
505 "get number of children of struct_declarations.s2.u2.u1s1.func"
506
507
508 # Test: c_variable-4.73
509 # Desc: children of struct_declarations.s2.u2.u1s1.foo
510 mi_gdb_test "-var-list-children struct_declarations.s2.u2.u1s1.foo" \
511 "\\^done,numchild=\"0\"" \
512 "get children of struct_declarations.s2.u2.u1s1.foo"
513
514 # Test: c_variable-4.74
515 # Desc: number of children of struct_declarations.s2.u2.u1s1.foo
516 mi_gdb_test "-var-info-num-children struct_declarations.s2.u2.u1s1.foo" \
517 "\\^done,numchild=\"0\"" \
518 "get number of children of struct_declarations.s2.u2.u1s1.foo"
519
520
521 # Test: c_variable-4.75
522 # Desc: children of struct_declarations.s2.u2.u1s2.array_ptr
523 mi_gdb_test "-var-list-children struct_declarations.s2.u2.u1s2.array_ptr" \
524 "\\^done,numchild=\"2\",children=\\\[child=\{name=\"struct_declarations.s2.u2.u1s2.array_ptr.0\",exp=\"0\",numchild=\"0\",type=\"char\"\},child={name=\"struct_declarations.s2.u2.u1s2.array_ptr.1\",exp=\"1\",numchild=\"0\",type=\"char\"\}\\\]" \
525 "get children of struct_declarations.s2.u2.u1s2.array_ptr"
526
527 # Test: c_variable-4.76
528 # Desc: number of children of struct_declarations.s2.u2.u1s2.array_ptr
529 mi_gdb_test "-var-info-num-children struct_declarations.s2.u2.u1s2.array_ptr" \
530 "\\^done,numchild=\"2\"" \
531 "get number of children of struct_declarations.s2.u2.u1s2.array_ptr"
532
533 # Test: c_variable-4.77
534 # Desc: children of struct_declarations.s2.u2.u1s2.func
535 mi_gdb_test "-var-list-children struct_declarations.s2.u2.u1s2.func" \
536 "\\^done,numchild=\"0\"" \
537 "get children of struct_declarations.s2.u2.u1s2.func"
538
539 # Test: c_variable-4.78
540 # Desc: number of children of struct_declarations.s2.u2.u1s2.func
541 mi_gdb_test "-var-info-num-children struct_declarations.s2.u2.u1s2.func" \
542 "\\^done,numchild=\"0\"" \
543 "get number of children of struct_declarations.s2.u2.u1s2.func"
544
545 # Test: c_variable-4.79
546 # Desc: children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
547 mi_gdb_test "-var-list-children struct_declarations.int_ptr_ptr.*int_ptr_ptr" \
548 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"struct_declarations.int_ptr_ptr.\\*int_ptr_ptr.\\*\\*int_ptr_ptr\",exp=\"\\*\\*int_ptr_ptr\",numchild=\"0\",type=\"int\"\}\\\]" \
549 "get children of struct_declarations.int_ptr_ptr.*int_ptr_ptr"
550 #} {**int_ptr_ptr}
551
552 # Test: c_variable-4.80
553 # Desc: Number of children of struct_declarations.int_ptr_ptr.*int_ptr_ptr
554 mi_gdb_test "-var-info-num-children struct_declarations.int_ptr_ptr.*int_ptr_ptr" \
555 "\\^done,numchild=\"1\"" \
556 "get number of children of struct_declarations.int_ptr_ptr.*int_ptr_ptr"
557
558
559 # Step to "struct_declarations.integer = 123;"
560 set line_dct_123 [gdb_get_line_number "struct_declarations.integer = 123;"]
561 mi_step_to do_children_tests {} ".*${srcfile}" \
562 $line_dct_123 "step to line \$line_dct_123"
563
564 # Test: c_variable-4.81
565 # Desc: create local variable "weird"
566 mi_create_varobj weird weird "create local variable weird"
567
568 # Test: c_variable-4.82
569 # Desc: children of weird
570 mi_gdb_test "-var-list-children weird" \
571 "\\^done,numchild=\"11\",children=\\\[child=\{name=\"weird.integer\",exp=\"integer\",numchild=\"0\",type=\"int\"\},child=\{name=\"weird.character\",exp=\"character\",numchild=\"0\",type=\"char\"\},child=\{name=\"weird.char_ptr\",exp=\"char_ptr\",numchild=\"1\",type=\"char \\*\"\},child=\{name=\"weird.long_int\",exp=\"long_int\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.int_ptr_ptr\",exp=\"int_ptr_ptr\",numchild=\"1\",type=\"int \\*\\*\"\},child=\{name=\"weird.long_array\",exp=\"long_array\",numchild=\"12\",type=\"long int \\\[12\\\]\"\},child=\{name=\"weird.func_ptr\",exp=\"func_ptr\",numchild=\"0\",type=\"void \\(\\*\\)\\((void)?\\)\"\},child=\{name=\"weird.func_ptr_struct\",exp=\"func_ptr_struct\",numchild=\"0\",type=\"struct _struct_decl \\(\\*\\)\\((int, char \\*, long int)?\\)\"\},child=\{name=\"weird.func_ptr_ptr\",exp=\"func_ptr_ptr\",numchild=\"0\",type=\"struct _struct_decl \\*\\(\\*\\)\\((int, char \\*, long int)?\\)\"\},child=\{name=\"weird.u1\",exp=\"u1\",numchild=\"4\",type=\"union \{\\.\\.\\.\}\"\},child=\{name=\"weird.s2\",exp=\"s2\",numchild=\"4\",type=\"struct \{\\.\\.\\.\}\"\}\\\]" \
572 "get children of weird"
573
574 # Test: c_variable-4.83
575 # Desc: number of children of weird
576 mi_gdb_test "-var-info-num-children weird" \
577 "\\^done,numchild=\"11\"" \
578 "get number of children of weird"
579
580
581 # Test: c_variable-4.84
582 # Desc: children of weird->long_array
583 mi_gdb_test "-var-list-children weird.long_array" \
584 "\\^done,numchild=\"12\",children=\\\[child=\{name=\"weird.long_array.0\",exp=\"0\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.long_array.1\",exp=\"1\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.long_array.2\",exp=\"2\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.long_array.3\",exp=\"3\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.long_array.4\",exp=\"4\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.long_array.5\",exp=\"5\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.long_array.6\",exp=\"6\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.long_array.7\",exp=\"7\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.long_array.8\",exp=\"8\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.long_array.9\",exp=\"9\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.long_array.10\",exp=\"10\",numchild=\"0\",type=\"long int\"\},child=\{name=\"weird.long_array.11\",exp=\"11\",numchild=\"0\",type=\"long int\"\}\\\]" \
585 "get children of weird.long_array"
586 #gdbtk_test c_variable-4.84 {children of weird->long_array} {
587 # get_children weird.long_array
588 #} {0 1 2 3 4 5 6 7 8 9 10 11}
589
590 # Test: c_variable-4.85
591 # Desc: number of children of weird.long_array
592 mi_gdb_test "-var-info-num-children weird.long_array" \
593 "\\^done,numchild=\"12\"" \
594 "get number of children of weird.long_array"
595
596 # Test: c_variable-4.86
597 # Desc: children of weird.int_ptr_ptr
598 mi_gdb_test "-var-list-children weird.int_ptr_ptr" \
599 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"weird.int_ptr_ptr.\\*int_ptr_ptr\",exp=\"\\*int_ptr_ptr\",numchild=\"1\",type=\"int \\*\"\}\\\]" \
600 "get children of weird.int_ptr_ptr"
601 #gdbtk_test c_variable-4.86 {children of weird->int_ptr_ptr} {
602 # get_children weird.int_ptr_ptr
603 #} {*int_ptr_ptr}
604
605 # Test: c_variable-4.87
606 # Desc: number of children of weird.int_ptr_ptr
607 mi_gdb_test "-var-info-num-children weird.int_ptr_ptr" \
608 "\\^done,numchild=\"1\"" \
609 "get number of children of weird.int_ptr_ptr"
610
611 # Test: c_variable-4.88
612 # Desc: children of *weird->int_ptr_ptr
613 mi_gdb_test "-var-list-children weird.int_ptr_ptr.*int_ptr_ptr" \
614 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"weird.int_ptr_ptr.\\*int_ptr_ptr.\\*\\*int_ptr_ptr\",exp=\"\\*\\*int_ptr_ptr\",numchild=\"0\",type=\"int\"\}\\\]" \
615 "get children of weird.int_ptr_ptr.*int_ptr_ptr"
616 #gdbtk_test c_variable-4.88 {children of *weird->int_ptr_ptr} {
617 # get_children weird.int_ptr_ptr.*int_ptr_ptr
618 #} {**int_ptr_ptr}
619
620 # Test: c_variable-4.89
621 # Desc: number of children *weird->int_ptr_ptr
622 mi_gdb_test "-var-info-num-children weird.int_ptr_ptr.*int_ptr_ptr" \
623 "\\^done,numchild=\"1\"" \
624 "get number of children of weird.int_ptr_ptr.*int_ptr_ptr"
625
626 # Test: c_variable-4.90
627 # Desc: create weird->int_ptr_ptr
628 mi_create_varobj weird->int_ptr_ptr weird->int_ptr_ptr \
629 "create local variable weird->int_ptr_ptr"
630
631 # Test: c_variable-4.91
632 # Desc: children of weird->int_ptr_ptr
633 mi_gdb_test "-var-list-children weird->int_ptr_ptr" \
634 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"weird->int_ptr_ptr.\\*weird->int_ptr_ptr\",exp=\"\\*weird->int_ptr_ptr\",numchild=\"1\",type=\"int \\*\"\}\\\]" \
635 "get children of weird->int_ptr_ptr"
636
637
638 # Test: c_variable-4.92
639 # Desc: number of children of (weird->int_ptr_ptr)
640 mi_gdb_test "-var-info-num-children weird->int_ptr_ptr" \
641 "\\^done,numchild=\"1\"" \
642 "get number of children of weird->int_ptr_ptr"
643
644 # Test: c_variable-4.93
645 # Desc: children of *(weird->int_ptr_ptr)
646 mi_gdb_test "-var-list-children weird->int_ptr_ptr.*weird->int_ptr_ptr" \
647 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"weird->int_ptr_ptr.\\*weird->int_ptr_ptr.\\*\\*weird->int_ptr_ptr\",exp=\"\\*\\*weird->int_ptr_ptr\",numchild=\"0\",type=\"int\"\}\\\]" \
648 "get children of weird->int_ptr_ptr.*weird->int_ptr_ptr"
649
650 # Test: c_variable-4.94
651 # Desc: number of children of *(weird->int_ptr_ptr)
652 mi_gdb_test "-var-info-num-children weird->int_ptr_ptr.*weird->int_ptr_ptr" \
653 "\\^done,numchild=\"1\"" \
654 "get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr"
655
656 # Test: c_variable-4.95
657 # Desc: children of *(*(weird->int_ptr_ptr))
658 mi_gdb_test "-var-list-children weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr" \
659 "\\^done,numchild=\"0\"" \
660 "get children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr"
661
662 # Test: c_variable-4.96
663 # Desc: number of children of *(*(weird->int_ptr_ptr))
664 mi_gdb_test "-var-info-num-children weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr" \
665 "\\^done,numchild=\"0\"" \
666 "get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr"
667
668 # Test: c_variable-4.97
669 # Desc: is weird editable
670 mi_gdb_test "-var-show-attributes weird" \
671 "\\^done,attr=\"editable\"" \
672 "is weird editable"
673
674 # Test: c_variable-4.98
675 # Desc: is weird->int_ptr_ptr editable
676 mi_gdb_test "-var-show-attributes weird->int_ptr_ptr" \
677 "\\^done,attr=\"editable\"" \
678 "is weird->int_ptr_ptr editable"
679
680 # Test: c_variable-4.99
681 # Desc: is *(weird->int_ptr_ptr) editable
682 mi_gdb_test "-var-show-attributes weird.int_ptr_ptr.*int_ptr_ptr" \
683 "\\^done,attr=\"editable\"" \
684 "is weird.int_ptr_ptr.*int_ptr_ptr editable"
685
686 # Test: c_variable-4.100
687 # Desc: is *(*(weird->int_ptr_ptr)) editable
688 mi_gdb_test "-var-show-attributes weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr" \
689 "\\^done,attr=\"editable\"" \
690 "is weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr editable"
691
692 # Test: c_variable-4.101
693 # Desc: is weird->u1 editable
694 mi_gdb_test "-var-show-attributes weird.u1" \
695 "\\^done,attr=\"noneditable\"" \
696 "is weird.u1 editable"
697
698 # Test: c_variable-4.102
699 # Desc: is weird->s2 editable
700 mi_gdb_test "-var-show-attributes weird.s2" \
701 "\\^done,attr=\"noneditable\"" \
702 "is weird.s2 editable"
703
704 # Test: c_variable-4.103
705 # Desc: is struct_declarations.u1.a editable
706 mi_gdb_test "-var-show-attributes struct_declarations.u1.a" \
707 "\\^done,attr=\"editable\"" \
708 "is struct_declarations.u1.a editable"
709
710 # Test: c_variable-4.104
711 # Desc: is struct_declarations.u1.b editable
712 mi_gdb_test "-var-show-attributes struct_declarations.u1.b" \
713 "\\^done,attr=\"editable\"" \
714 "is struct_declarations.u1.b editable"
715
716 # Test: c_variable-4.105
717 # Desc: is struct_declarations.u1.c editable
718 mi_gdb_test "-var-show-attributes struct_declarations.u1.c" \
719 "\\^done,attr=\"editable\"" \
720 "is struct_declarations.u1.c editable"
721
722 # Test: c_variable-4.106
723 # Desc: is struct_declarations.long_array editable
724 mi_gdb_test "-var-show-attributes struct_declarations.long_array" \
725 "\\^done,attr=\"noneditable\"" \
726 "is struct_declarations.long_array editable"
727
728 # Test: c_variable-4.107
729 # Desc: is struct_declarations.long_array[0] editable
730 mi_gdb_test "-var-show-attributes struct_declarations.long_array.0" \
731 "\\^done,attr=\"editable\"" \
732 "is struct_declarations.long_array.0 editable"
733
734 # Test: c_variable-4.108
735 # Desc: is struct_declarations editable
736 mi_gdb_test "-var-show-attributes struct_declarations" \
737 "\\^done,attr=\"noneditable\"" \
738 "is struct_declarations editable"
739
740 mi_gdb_test "-var-delete weird" \
741 "\\^done,ndeleted=\"26\"" \
742 "delete var weird"
743
744 ##### #####
745 # #
746 # children and update tests #
747 # #
748 ##### #####
749
750 # Test: c_variable-5.1
751 # Desc: check that nothing changed
752 mi_gdb_test "-var-update *" \
753 "\\^done,changelist=\\\[\\\]" \
754 "update all vars. None changed"
755
756 # Step over "struct_declarations.integer = 123;"
757 mi_step_to do_children_tests {} ".*${srcfile}" \
758 [expr $line_dct_123 + 1] "step \$line_dct_123 + 1"
759
760 # Test: c_variable-5.2
761 # Desc: check that integer changed
762 mi_gdb_test "-var-update *" \
763 "\\^done,changelist=\\\[\{name=\"struct_declarations.integer\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
764 "update all vars struct_declarations.integer"
765
766 # Step over:
767 # weird->char_ptr = "hello";
768 # bar = 2121;
769 # foo = &bar;
770 mi_execute_to "exec-step 3" "end-stepping-range" do_children_tests {} ".*${srcfile}" \
771 [expr $line_dct_123 + 4] {} "step \$line_dct_123 + 4"
772
773 # Test: c_variable-5.3
774 # Desc: check that char_ptr changed
775 mi_gdb_test "-var-update *" \
776 "\\^done,changelist=\\\[\{name=\"struct_declarations.char_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"struct_declarations.char_ptr.\\*char_ptr\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
777 "update all vars struct_declarations.char_ptr"
778
779 # Step over "struct_declarations.int_ptr_ptr = &foo;"
780 mi_step_to do_children_tests {} ".*${srcfile}" \
781 [expr $line_dct_123 + 5] "step \$line_dct_123 + 5"
782
783 # Test: c_variable-5.4
784 # Desc: check that int_ptr_ptr and children changed
785 mi_gdb_test "-var-update *" \
786 "\\^done,changelist=\\\[\{name=\"weird->int_ptr_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"weird->int_ptr_ptr.\\*weird->int_ptr_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"weird->int_ptr_ptr.\\*weird->int_ptr_ptr.\\*\\*weird->int_ptr_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"struct_declarations.int_ptr_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"struct_declarations.int_ptr_ptr.\\*int_ptr_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"struct_declarations.int_ptr_ptr.\\*int_ptr_ptr.\\*\\*int_ptr_ptr\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
787 "update all vars int_ptr_ptr and children changed"
788
789 # Step over "weird->long_array[0] = 1234;"
790 mi_step_to do_children_tests {} ".*${srcfile}" \
791 [expr $line_dct_123 + 6] "step \$line_dct_123 + 6"
792
793 # Test: c_variable-5.5
794 # Desc: check that long_array[0] changed
795 mi_gdb_test "-var-update *" \
796 "\\^done,changelist=\\\[\{name=\"struct_declarations.long_array.0\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
797 "update all vars struct_declarations.long_array.0 changed"
798
799 # Step over "struct_declarations.long_array[1] = 2345;"
800 mi_step_to do_children_tests {} ".*${srcfile}" \
801 [expr $line_dct_123 + 7] "step \$line_dct_123 + 7"
802
803 # Test: c_variable-5.6
804 # Desc: check that long_array[1] changed
805 mi_gdb_test "-var-update *" \
806 "\\^done,changelist=\\\[\{name=\"struct_declarations.long_array.1\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
807 "update all vars struct_declarations.long_array.1 changed"
808
809 # Step over "weird->long_array[2] = 3456;"
810 mi_step_to do_children_tests {} ".*${srcfile}" \
811 [expr $line_dct_123 + 8] "step \$line_dct_123 + 8"
812
813 # Test: c_variable-5.7
814 # Desc: check that long_array[2] changed
815 mi_gdb_test "-var-update *" \
816 "\\^done,changelist=\\\[\{name=\"struct_declarations.long_array.2\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
817 "update all vars struct_declarations.long_array.2 changed"
818
819 # Step over:
820 # struct_declarations.long_array[3] = 4567;
821 # weird->long_array[4] = 5678;
822 # struct_declarations.long_array[5] = 6789;
823 # weird->long_array[6] = 7890;
824 # struct_declarations.long_array[7] = 8901;
825 # weird->long_array[8] = 9012;
826 # struct_declarations.long_array[9] = 1234;
827
828 set line_dct_nothing [gdb_get_line_number "weird->func_ptr = nothing;"]
829 mi_execute_to "exec-step 7" "end-stepping-range" do_children_tests {} ".*${srcfile}" \
830 $line_dct_nothing {} "step \$line_dct_nothing"
831
832 # Test: c_variable-5.8
833 # Desc: check that long_array[3-9] changed
834 mi_gdb_test "-var-update *" \
835 "\\^done,changelist=\\\[\{name=\"struct_declarations.long_array.3\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"struct_declarations.long_array.4\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"struct_declarations.long_array.5\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"struct_declarations.long_array.6\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"struct_declarations.long_array.7\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"struct_declarations.long_array.8\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"struct_declarations.long_array.9\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
836 "update all vars struct_declarations.long_array.3-9 changed"
837
838
839 # Step over "weird->func_ptr = nothing";
840 mi_step_to do_children_tests {} ".*${srcfile}" \
841 [expr $line_dct_nothing + 1] "step \$line_dct_nothing + 1"
842
843 # Test: c_variable-5.9
844 # Desc: check that func_ptr changed
845 mi_gdb_test "-var-update *" \
846 "\\^done,changelist=\\\[\{name=\"struct_declarations.func_ptr\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
847 "update all vars struct_declarations.func_ptr changed"
848
849 # Step over "struct_declarations.long_array[10] = 3456";
850 mi_step_to do_children_tests {} ".*${srcfile}" \
851 [expr $line_dct_nothing + 2] "step \$line_dct_nothing + 2"
852
853 mi_gdb_test "-var-update --no-values *" \
854 "\\^done,changelist=\\\[\{name=\"struct_declarations.long_array.10\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
855 "update all vars struct_declarations.long_array.10 changed, don't print values."
856
857 # Step over "struct_declarations.long_array[11] = 5678";
858 set line_dct_a0_0 [gdb_get_line_number "a0 = '0';"]
859 mi_step_to do_children_tests {} ".*${srcfile}" \
860 $line_dct_a0_0 "step \$line_dct_a0_0"
861
862 mi_gdb_test "-var-update --all-values *" \
863 "\\^done,changelist=\\\[\{name=\"struct_declarations.long_array.11\",value=\"5678\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
864 "update all vars struct_declarations.long_array.11 changed, print values."
865
866 mi_gdb_test "-var-list-children --all-values struct_declarations.long_array" \
867 "\\^done,numchild=\"12\",children=\\\[child=\{name=\"struct_declarations.long_array.0\",exp=\"0\",numchild=\"0\",value=\"1234\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.1\",exp=\"1\",numchild=\"0\",value=\"2345\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.2\",exp=\"2\",numchild=\"0\",value=\"3456\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.3\",exp=\"3\",numchild=\"0\",value=\"4567\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.4\",exp=\"4\",numchild=\"0\",value=\"5678\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.5\",exp=\"5\",numchild=\"0\",value=\"6789\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.6\",exp=\"6\",numchild=\"0\",value=\"7890\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.7\",exp=\"7\",numchild=\"0\",value=\"8901\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.8\",exp=\"8\",numchild=\"0\",value=\"9012\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.9\",exp=\"9\",numchild=\"0\",value=\"1234\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.10\",exp=\"10\",numchild=\"0\",value=\"3456\",type=\"long int\"\},child=\{name=\"struct_declarations.long_array.11\",exp=\"11\",numchild=\"0\",value=\"5678\",type=\"long int\"\}\\\]" \
868 "listing of names and values of children"
869
870 mi_gdb_test "-var-list-children --simple-values struct_declarations" \
871 "\\^done,numchild=\"11\",children=\\\[child=\{name=\"struct_declarations.integer\",exp=\"integer\",numchild=\"0\",value=\"123\",type=\"int\"\},child=\{name=\"struct_declarations.character\",exp=\"character\",numchild=\"0\",value=\"0 '\\\\\\\\0'\",type=\"char\"\},child=\{name=\"struct_declarations.char_ptr\",exp=\"char_ptr\",numchild=\"1\",value=\"$hex \\\\\"hello\\\\\"\",type=\"char \\*\"\},child=\{name=\"struct_declarations.long_int\",exp=\"long_int\",numchild=\"0\",value=\"0\",type=\"long int\"\},child=\{name=\"struct_declarations.int_ptr_ptr\",exp=\"int_ptr_ptr\",numchild=\"1\",value=\"$hex\",type=\"int \\*\\*\"\},child=\{name=\"struct_declarations.long_array\",exp=\"long_array\",numchild=\"12\",type=\"long int \\\[12\\\]\"\},child=\{name=\"struct_declarations.func_ptr\",exp=\"func_ptr\",numchild=\"0\",value=\"(@$hex: |)$hex <nothing>\",type=\"void \\(\\*\\)\\(void\\)\"\},child=\{name=\"struct_declarations.func_ptr_struct\",exp=\"func_ptr_struct\",numchild=\"0\",value=\"0\",type=\"struct _struct_decl \\(\\*\\)\\(int, char \\*, long int\\)\"\},child=\{name=\"struct_declarations.func_ptr_ptr\",exp=\"func_ptr_ptr\",numchild=\"0\",value=\"0\",type=\"struct _struct_decl \\*\\(\\*\\)\\(int, char \\*, long int\\)\"\},child=\{name=\"struct_declarations.u1\",exp=\"u1\",numchild=\"4\",type=\"union \{...\}\"\},child=\{name=\"struct_declarations.s2\",exp=\"s2\",numchild=\"4\",type=\"struct \{...\}\"\}\\\]" \
872 "listing of children, simple types: names, type and values, complex types: names and types"
873
874 # Delete all variables
875 mi_gdb_test "-var-delete struct_declarations" \
876 "\\^done,ndeleted=\"67\"" \
877 "delete var struct_declarations"
878
879 mi_gdb_test "-var-delete weird->int_ptr_ptr" \
880 "\\^done,ndeleted=\"3\"" \
881 "delete var weird->int_ptr_ptr"
882
883 # Step over all lines:
884 # ...
885 # psnp = &snp0;
886
887 set line_dct_snp0 [gdb_get_line_number "psnp = &snp0;"]
888 mi_execute_to "exec-step 43" "end-stepping-range" do_children_tests {} ".*${srcfile}" \
889 [expr $line_dct_snp0 + 1] {} "step \$line_dct_snp0 + 1"
890
891 # Test: c_variable-5.10
892 # Desc: create psnp->char_ptr
893 mi_create_varobj psnp->char_ptr psnp->char_ptr \
894 "create local variable psnp->char_ptr"
895
896 # Test: c_variable-5.11
897 # Desc: children of psnp->char_ptr
898 mi_gdb_test "-var-list-children psnp->char_ptr" \
899 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->char_ptr.\\*psnp->char_ptr\",exp=\"\\*psnp->char_ptr\",numchild=\"1\",type=\"char \\*\\*\\*\"\}\\\]" \
900 "get children of psnp->char_ptr"
901
902 # Test: c_variable-5.12
903 # Desc: number of children of psnp->char_ptr
904 mi_gdb_test "-var-info-num-children psnp->char_ptr" \
905 "\\^done,numchild=\"1\"" \
906 "get number of children of psnp->char_ptr"
907
908 # Test: c_variable-5.13
909 # Desc: children of *(psnp->char_ptr)
910 mi_gdb_test "-var-list-children psnp->char_ptr.*psnp->char_ptr" \
911 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->char_ptr.\\*psnp->char_ptr.\\*\\*psnp->char_ptr\",exp=\"\\*\\*psnp->char_ptr\",numchild=\"1\",type=\"char \\*\\*\"\}\\\]" \
912 "get children of psnp->char_ptr.*psnp->char_ptr"
913
914 # Test: c_variable-5.14
915 # Desc: number of children of *(psnp->char_ptr)
916 mi_gdb_test "-var-info-num-children psnp->char_ptr.*psnp->char_ptr" \
917 "\\^done,numchild=\"1\"" \
918 "get number of children of psnp->char_ptr.*psnp->char_ptr"
919
920 # Test: c_variable-5.15
921 # Desc: children of *(*(psnp->char_ptr))
922 mi_gdb_test "-var-list-children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr" \
923 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->char_ptr.\\*psnp->char_ptr.\\*\\*psnp->char_ptr.\\*\\*\\*psnp->char_ptr\",exp=\"\\*\\*\\*psnp->char_ptr\",numchild=\"1\",type=\"char \\*\"\}\\\]" \
924 "get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr"
925
926 # Test: c_variable-5.15B
927 # Desc: children of *(*(*(psnp->char_ptr)))
928 mi_gdb_test "-var-list-children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr" \
929 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->char_ptr.\\*psnp->char_ptr.\\*\\*psnp->char_ptr.\\*\\*\\*psnp->char_ptr.\\*\\*\\*\\*psnp->char_ptr\",exp=\"\\*\\*\\*\\*psnp->char_ptr\",numchild=\"0\",type=\"char\"\}\\\]" \
930 "get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr"
931
932 # Test: c_variable-5.16
933 # Desc: number of children of *(*(psnp->char_ptr))
934 mi_gdb_test "-var-info-num-children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr" \
935 "\\^done,numchild=\"1\"" \
936 "get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr"
937
938 # Test: c_variable-5.17
939 # Desc: children of *(*(*(psnp->char_ptr)))
940 mi_gdb_test "-var-list-children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr" \
941 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->char_ptr.\\*psnp->char_ptr.\\*\\*psnp->char_ptr.\\*\\*\\*psnp->char_ptr.\\*\\*\\*\\*psnp->char_ptr\",exp=\"\\*\\*\\*\\*psnp->char_ptr\",numchild=\"0\",type=\"char\"\}\\\]" \
942 "get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr"
943
944 # Test: c_variable-5.18
945 # Desc: number of children of *(*(*(psnp->char_ptr)))
946 mi_gdb_test "-var-info-num-children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr" \
947 "\\^done,numchild=\"1\"" \
948 "get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr"
949
950 # Test: c_variable-5.17B
951 # Desc: children of *(*(*(*(psnp->char_ptr))))
952 mi_gdb_test "-var-list-children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr" \
953 "\\^done,numchild=\"0\"" \
954 "get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr"
955
956 # Test: c_variable-5.18B
957 # Desc: number of children of *(*(*(*(psnp->char_ptr))))
958 mi_gdb_test "-var-info-num-children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr" \
959 "\\^done,numchild=\"0\"" \
960 "get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr"
961
962
963 # Test: c_variable-5.19
964 # Desc: create psnp->long_ptr
965 mi_create_varobj psnp->long_ptr psnp->long_ptr \
966 "create local variable psnp->long_ptr"
967
968 # Test: c_variable-5.20
969 # Desc: children of psnp->long_ptr
970 mi_gdb_test "-var-list-children psnp->long_ptr" \
971 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->long_ptr.\\*psnp->long_ptr\",exp=\"\\*psnp->long_ptr\",numchild=\"1\",type=\"long int \\*\\*\\*\"\}\\\]" \
972 "get children of psnp->long_ptr"
973
974 # Test: c_variable-5.21
975 # Desc: number of children of psnp->long_ptr
976 mi_gdb_test "-var-info-num-children psnp->long_ptr" \
977 "\\^done,numchild=\"1\"" \
978 "get number of children of psnp->long_ptr"
979
980 # Test: c_variable-5.22
981 # Desc: children of *(psnp->long_ptr)
982 mi_gdb_test "-var-list-children psnp->long_ptr.*psnp->long_ptr" \
983 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->long_ptr.\\*psnp->long_ptr.\\*\\*psnp->long_ptr\",exp=\"\\*\\*psnp->long_ptr\",numchild=\"1\",type=\"long int \\*\\*\"\}\\\]" \
984 "get children of psnp->long_ptr.*psnp->long_ptr"
985
986
987 # Test: c_variable-5.23
988 # Desc: number of children of *(psnp->long_ptr)
989 mi_gdb_test "-var-info-num-children psnp->long_ptr.*psnp->long_ptr" \
990 "\\^done,numchild=\"1\"" \
991 "get number of children of psnp->long_ptr.*psnp->long_ptr"
992
993 # Test: c_variable-5.24
994 # Desc: children of *(*(psnp->long_ptr))
995 mi_gdb_test "-var-list-children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr" \
996 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->long_ptr.\\*psnp->long_ptr.\\*\\*psnp->long_ptr.\\*\\*\\*psnp->long_ptr\",exp=\"\\*\\*\\*psnp->long_ptr\",numchild=\"1\",type=\"long int \\*\"\}\\\]" \
997 "get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr"
998
999 # Test: c_variable-5.25
1000 # Desc: number of children of *(*(psnp->long_ptr))
1001 mi_gdb_test "-var-info-num-children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr" \
1002 "\\^done,numchild=\"1\"" \
1003 "get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr"
1004
1005 # Test: c_variable-5.26
1006 # Desc: children of *(*(*(psnp->long_ptr)))
1007 mi_gdb_test "-var-list-children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr" \
1008 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->long_ptr.\\*psnp->long_ptr.\\*\\*psnp->long_ptr.\\*\\*\\*psnp->long_ptr.\\*\\*\\*\\*psnp->long_ptr\",exp=\"\\*\\*\\*\\*psnp->long_ptr\",numchild=\"0\",type=\"long int\"\}\\\]" \
1009 "get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr"
1010
1011 # Test: c_variable-5.27
1012 # Desc: number of children of *(*(*(psnp->long_ptr)))
1013 mi_gdb_test "-var-info-num-children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr" \
1014 "\\^done,numchild=\"1\"" \
1015 "get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr"
1016
1017 # Test: c_variable-5.28
1018 # Desc: children of *(*(*(*(psnp->long_ptr))))
1019 mi_gdb_test "-var-list-children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr" \
1020 "\\^done,numchild=\"0\"" \
1021 "get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr"
1022
1023 # Test: c_variable-5.29
1024 # Desc: number of children of *(*(*(*(psnp->long_ptr))))
1025 mi_gdb_test "-var-info-num-children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr" \
1026 "\\^done,numchild=\"0\"" \
1027 "get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr"
1028
1029 # Test: c_variable-5.30
1030 # Desc: create psnp->ptrs
1031 mi_create_varobj psnp->ptrs psnp->ptrs "create local variable psnp->ptrs"
1032
1033 # Test: c_variable-5.31
1034 # Desc: children of psnp->ptrs
1035 mi_gdb_test "-var-list-children psnp->ptrs" \
1036 "\\^done,numchild=\"3\",children=\\\[child=\{name=\"psnp->ptrs.0\",exp=\"0\",numchild=\"4\",type=\"struct _struct_n_pointer \\*\"\},child=\{name=\"psnp->ptrs.1\",exp=\"1\",numchild=\"4\",type=\"struct _struct_n_pointer \\*\"\},child=\{name=\"psnp->ptrs.2\",exp=\"2\",numchild=\"4\",type=\"struct _struct_n_pointer \\*\"\}\\\]" \
1037 "get children of psnp->ptrs"
1038
1039 # Test: c_variable-5.32
1040 # Desc: number of children of psnp->ptrs
1041 mi_gdb_test "-var-info-num-children psnp->ptrs" \
1042 "\\^done,numchild=\"3\"" \
1043 "get number of children of psnp->ptrs"
1044
1045 # Test: c_variable-5.33
1046 # Desc: children of psnp->ptrs[0]
1047 mi_gdb_test "-var-list-children psnp->ptrs.0" \
1048 "\\^done,numchild=\"4\",children=\\\[child=\{name=\"psnp->ptrs.0.char_ptr\",exp=\"char_ptr\",numchild=\"1\",type=\"char \\*\\*\\*\\*\"\},child=\{name=\"psnp->ptrs.0.long_ptr\",exp=\"long_ptr\",numchild=\"1\",type=\"long int \\*\\*\\*\\*\"\},child=\{name=\"psnp->ptrs.0.ptrs\",exp=\"ptrs\",numchild=\"3\",type=\"struct _struct_n_pointer \\*\\\[3\\\]\"\},child=\{name=\"psnp->ptrs.0.next\",exp=\"next\",numchild=\"4\",type=\"struct _struct_n_pointer \\*\"\}\\\]" \
1049 "get children of psnp->ptrs.0"
1050
1051 # Test: c_variable-5.34
1052 # Desc: number of children of psnp->ptrs[0]
1053 mi_gdb_test "-var-info-num-children psnp->ptrs.0" \
1054 "\\^done,numchild=\"4\"" \
1055 "get number of children of psnp->ptrs.0"
1056
1057 # Test: c_variable-5.35
1058 # Desc: children of psnp->ptrs[0]->next
1059 mi_gdb_test "-var-list-children psnp->ptrs.0.next" \
1060 "\\^done,numchild=\"4\",children=\\\[child=\{name=\"psnp->ptrs.0.next.char_ptr\",exp=\"char_ptr\",numchild=\"1\",type=\"char \\*\\*\\*\\*\"\},child=\{name=\"psnp->ptrs.0.next.long_ptr\",exp=\"long_ptr\",numchild=\"1\",type=\"long int \\*\\*\\*\\*\"\},child=\{name=\"psnp->ptrs.0.next.ptrs\",exp=\"ptrs\",numchild=\"3\",type=\"struct _struct_n_pointer \\*\\\[3\\\]\"\},child=\{name=\"psnp->ptrs.0.next.next\",exp=\"next\",numchild=\"4\",type=\"struct _struct_n_pointer \\*\"\}\\\]" \
1061 "get children of psnp->ptrs.0.next"
1062
1063 #} {char_ptr long_ptr ptrs next}
1064
1065 # Test: c_variable-5.36
1066 # Desc: number of children of psnp->ptrs[0]->next
1067 mi_gdb_test "-var-info-num-children psnp->ptrs.0.next" \
1068 "\\^done,numchild=\"4\"" \
1069 "get number of children of psnp->ptrs.0.next"
1070
1071
1072 # Test: c_variable-5.37
1073 # Desc: children of psnp->ptrs[0]->next->char_ptr
1074 mi_gdb_test "-var-list-children psnp->ptrs.0.next.char_ptr" \
1075 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->ptrs.0.next.char_ptr.\\*char_ptr\",exp=\"\\*char_ptr\",numchild=\"1\",type=\"char \\*\\*\\*\"\}\\\]" \
1076 "get children of psnp->ptrs.0.next.char_ptr"
1077
1078 #gdbtk_test c_variable-5.37 {children of psnp->ptrs[0]->next->char_ptr} {
1079 # get_children psnp->ptrs.0.next.char_ptr
1080 #} {*char_ptr}
1081
1082 # Test: c_variable-5.38
1083 # Desc: number of children of psnp->ptrs[0]->next->char_ptr
1084 mi_gdb_test "-var-info-num-children psnp->ptrs.0.next.char_ptr" \
1085 "\\^done,numchild=\"1\"" \
1086 "get number of children of psnp->ptrs.0.next.char_ptr"
1087
1088 # Test: c_variable-5.39
1089 # Desc: children of *psnp->ptrs[0]->next->char_ptr
1090 mi_gdb_test "-var-list-children psnp->ptrs.0.next.char_ptr.*char_ptr" \
1091 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->ptrs.0.next.char_ptr.\\*char_ptr.\\*\\*char_ptr\",exp=\"\\*\\*char_ptr\",numchild=\"1\",type=\"char \\*\\*\"\}\\\]" \
1092 "get children of psnp->ptrs.0.next.char_ptr.*char_ptr"
1093
1094 # Test: c_variable-5.40
1095 # Desc: number of children of *psnp->ptrs[0]->next->char_ptr
1096 mi_gdb_test "-var-info-num-children psnp->ptrs.0.next.char_ptr.*char_ptr" \
1097 "\\^done,numchild=\"1\"" \
1098 "get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr"
1099
1100 # Test: c_variable-5.41
1101 # Desc: children of **psnp->ptrs[0]->next->char_ptr
1102 mi_gdb_test "-var-list-children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr" \
1103 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->ptrs.0.next.char_ptr.\\*char_ptr.\\*\\*char_ptr.\\*\\*\\*char_ptr\",exp=\"\\*\\*\\*char_ptr\",numchild=\"1\",type=\"char \\*\"\}\\\]" \
1104 "get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr"
1105
1106 # Test: c_variable-5.41B
1107 # Desc: children of ***psnp->ptrs[0]->next->char_ptr
1108 mi_gdb_test "-var-list-children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr" \
1109 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->ptrs.0.next.char_ptr.\\*char_ptr.\\*\\*char_ptr.\\*\\*\\*char_ptr.\\*\\*\\*\\*char_ptr\",exp=\"\\*\\*\\*\\*char_ptr\",numchild=\"0\",type=\"char\"\}\\\]" \
1110 "get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr"
1111
1112 # Test: c_variable-5.42
1113 # Desc: number of children of **psnp->ptrs[0]->next->char_ptr
1114 mi_gdb_test "-var-info-num-children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr" \
1115 "\\^done,numchild=\"1\"" \
1116 "get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr"
1117
1118 # Test: c_variable-5.43
1119 # Desc: children of ***psnp->ptrs[0]->next->char_ptr
1120 mi_gdb_test "-var-list-children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr" \
1121 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->ptrs.0.next.char_ptr.\\*char_ptr.\\*\\*char_ptr.\\*\\*\\*char_ptr.\\*\\*\\*\\*char_ptr\",exp=\"\\*\\*\\*\\*char_ptr\",numchild=\"0\",type=\"char\"\}\\\]" \
1122 "get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr"
1123
1124 # Test: c_variable-5.44
1125 # Desc: number of children of ***psnp->ptrs[0]->next->char_ptr
1126 mi_gdb_test "-var-info-num-children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr" \
1127 "\\^done,numchild=\"1\"" \
1128 "get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr"
1129
1130 # Test: c_variable-5.43B
1131 # Desc: children of ****psnp->ptrs[0]->next->char_ptr
1132 mi_gdb_test "-var-list-children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr.****char_ptr" \
1133 "\\^done,numchild=\"0\"" \
1134 "get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr"
1135
1136 # Test: c_variable-5.44B
1137 # Desc: number of children of ****psnp->ptrs[0]->next->char_ptr
1138 mi_gdb_test "-var-info-num-children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr.****char_ptr" \
1139 "\\^done,numchild=\"0\"" \
1140 "get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr"
1141
1142 # Test: c_variable-5.45
1143 # Desc: children of psnp->ptrs[0]->next->next
1144 mi_gdb_test "-var-list-children psnp->ptrs.0.next.next" \
1145 "\\^done,numchild=\"4\",children=\\\[child=\{name=\"psnp->ptrs.0.next.next.char_ptr\",exp=\"char_ptr\",numchild=\"1\",type=\"char \\*\\*\\*\\*\"\},child=\{name=\"psnp->ptrs.0.next.next.long_ptr\",exp=\"long_ptr\",numchild=\"1\",type=\"long int \\*\\*\\*\\*\"\},child=\{name=\"psnp->ptrs.0.next.next.ptrs\",exp=\"ptrs\",numchild=\"3\",type=\"struct _struct_n_pointer \\*\\\[3\\\]\"\},child=\{name=\"psnp->ptrs.0.next.next.next\",exp=\"next\",numchild=\"4\",type=\"struct _struct_n_pointer \\*\"\}\\\]" \
1146 "get children of psnp->ptrs.0.next.next"
1147
1148 # Test: c_variable-5.46
1149 # Desc: children of psnp->ptrs[0]->next->next->ptrs
1150 mi_gdb_test "-var-list-children psnp->ptrs.0.next.next.ptrs" \
1151 "\\^done,numchild=\"3\",children=\\\[child=\{name=\"psnp->ptrs.0.next.next.ptrs.0\",exp=\"0\",numchild=\"4\",type=\"struct _struct_n_pointer \\*\"\},child=\{name=\"psnp->ptrs.0.next.next.ptrs.1\",exp=\"1\",numchild=\"4\",type=\"struct _struct_n_pointer \\*\"\},child=\{name=\"psnp->ptrs.0.next.next.ptrs.2\",exp=\"2\",numchild=\"4\",type=\"struct _struct_n_pointer \\*\"\}\\\]" \
1152 "get children of psnp->ptrs.0.next.next.ptrs"
1153
1154 # Step over "snp0.char_ptr = &b3;"
1155 mi_step_to do_children_tests {} ".*${srcfile}" \
1156 [expr $line_dct_snp0 + 2] "step \$line_dct_snp0 + 2"
1157
1158 # Test: c_variable-5.47
1159 # Desc: check that psnp->char_ptr (and [0].char_ptr) changed
1160 mi_gdb_test "-var-update *" \
1161 "\\^done,changelist=\\\[\{name=\"psnp->ptrs.0.char_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"psnp->char_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"psnp->char_ptr.\\*psnp->char_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"psnp->char_ptr.\\*psnp->char_ptr.\\*\\*psnp->char_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"psnp->char_ptr.\\*psnp->char_ptr.\\*\\*psnp->char_ptr.\\*\\*\\*psnp->char_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"psnp->char_ptr.\\*psnp->char_ptr.\\*\\*psnp->char_ptr.\\*\\*\\*psnp->char_ptr.\\*\\*\\*\\*psnp->char_ptr\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
1162 "update all vars psnp->char_ptr (and 0.char_ptr) changed"
1163
1164 # Step over "snp1.char_ptr = &c3;"
1165 mi_step_to do_children_tests {} ".*${srcfile}" \
1166 [expr $line_dct_snp0 + 3] "step \$line_dct_snp0 + 3"
1167
1168 # Test: c_variable-5.48
1169 # Desc: check that psnp->next->char_ptr (and [1].char_ptr) changed
1170 mi_gdb_test "-var-update *" \
1171 "\\^done,changelist=\\\[\{name=\"psnp->ptrs.0.next.char_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"psnp->ptrs.0.next.char_ptr.\\*char_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"psnp->ptrs.0.next.char_ptr.\\*char_ptr.\\*\\*char_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"psnp->ptrs.0.next.char_ptr.\\*char_ptr.\\*\\*char_ptr.\\*\\*\\*char_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"psnp->ptrs.0.next.char_ptr.\\*char_ptr.\\*\\*char_ptr.\\*\\*\\*char_ptr.\\*\\*\\*\\*char_ptr\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
1172 "update all vars psnp->next->char_ptr (and 1.char_ptr) changed"
1173
1174
1175 # Step over "snp2.char_ptr = &a3;"
1176 mi_step_to do_children_tests {} ".*${srcfile}" \
1177 [expr $line_dct_snp0 + 4] "step \$line_dct_snp0 + 4"
1178
1179 # Test: c_variable-5.49
1180 # Desc: check that psnp->next->next->char_ptr (and [2].char_ptr) changed
1181 mi_gdb_test "-var-update *" \
1182 "\\^done,changelist=\\\[\{name=\"psnp->ptrs.0.next.next.char_ptr\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
1183 "update all vars psnp->next->next->char_ptr (and 2.char_ptr) changed"
1184
1185
1186 # Step over "snp0.long_ptr = &y3;"
1187 mi_step_to do_children_tests {} ".*${srcfile}" \
1188 [expr $line_dct_snp0 + 5] "step \$line_dct_snp0 + 5"
1189
1190 # Test: c_variable-5.50
1191 # Desc: check that psnp->long_ptr (and [0].long_ptr) changed
1192 mi_gdb_test "-var-update *" \
1193 "\\^done,changelist=\\\[\{name=\"psnp->ptrs.0.long_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"psnp->long_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"psnp->long_ptr.\\*psnp->long_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"psnp->long_ptr.\\*psnp->long_ptr.\\*\\*psnp->long_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"psnp->long_ptr.\\*psnp->long_ptr.\\*\\*psnp->long_ptr.\\*\\*\\*psnp->long_ptr\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"psnp->long_ptr.\\*psnp->long_ptr.\\*\\*psnp->long_ptr.\\*\\*\\*psnp->long_ptr.\\*\\*\\*\\*psnp->long_ptr\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
1194 "update all vars psnp->long_ptr (and 0.long_ptr) changed"
1195
1196
1197 # Step over "snp1.long_ptr = &x3;"
1198 mi_step_to do_children_tests {} ".*${srcfile}" \
1199 [expr $line_dct_snp0 + 6] "step \$line_dct_snp0 + 6"
1200
1201 # Test: c_variable-5.51
1202 # Desc: check that psnp->next->long_ptr (and [1].long_ptr) changed
1203 # Why does this have a FIXME?
1204 setup_xfail *-*-*
1205 mi_gdb_test "-var-update *" \
1206 "FIXME\\^done,changelist=\\\[\{name=\"psnp->ptrs.0.next.long_ptr\",in_scope_changed=\"false\"\}\\\]" \
1207 "update all vars psnp->next->long_ptr (and 1.long_ptr) changed"
1208 clear_xfail *-*-*
1209
1210 # This command produces this error message:
1211 # &"warning: varobj_list: assertion failed - mycount <> 0\n"
1212 #
1213
1214 # Step over "snp2.long_ptr = &z3;"
1215 mi_step_to do_children_tests {} ".*${srcfile}" \
1216 [expr $line_dct_snp0 + 7] "step \$line_dct_snp0 + 7"
1217
1218 # Test: c_variable-5.52
1219 # Desc: check that psnp->next->next->long_ptr (and [2].long_ptr) changed
1220 mi_gdb_test "-var-update *" \
1221 "\\^done,changelist=\\\[\{name=\"psnp->ptrs.0.next.next.long_ptr\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
1222 "update all vars psnp->next->next->long_ptr (and 2.long_ptr) changed"
1223
1224
1225
1226
1227 mi_gdb_exit
1228 return 0
This page took 0.112026 seconds and 4 git commands to generate.