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