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