]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/testsuite/gdb.mi/mi2-var-child.exp
* dwarf2-frame.c (dwarf2_frame_cache, dwarf2_frame_this_id)
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.mi / mi2-var-child.exp
CommitLineData
469aff8e 1# Copyright 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation
2fcf52f0
AC
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
2fcf52f0
AC
17# Test essential Machine interface (MI) operations
18#
19# Verify that, using the MI, we can create, update, delete variables.
20#
21
22
23load_lib mi-support.exp
24set MIFLAGS "-i=mi2"
25
26gdb_exit
27if [mi_gdb_start] {
28 continue
29}
30
31set testfile "var-cmd"
32set srcfile ${testfile}.c
33set binfile ${objdir}/${subdir}/${testfile}
34if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } {
b60f0898
JB
35 untested mi2-var-child.exp
36 return -1
2fcf52f0
AC
37}
38
39mi_delete_breakpoints
40mi_gdb_reinitialize_dir $srcdir/$subdir
41mi_gdb_load ${binfile}
42
43mi_runto do_children_tests
44
45##### #####
46# #
47# children tests #
48# #
49##### #####
50
51
52# Test: c_variable-4.2
53# Desc: create variable "struct_declarations"
43343e8b
NR
54mi_create_varobj struct_declarations struct_declarations \
55 "create local variable struct_declarations"
2fcf52f0
AC
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.
61mi_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
71mi_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
77mi_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
83mi_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
89mi_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
95mi_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
101mi_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
107mi_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
113mi_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
119mi_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
125mi_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
135mi_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
142mi_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
148mi_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
154mi_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
161mi_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
168mi_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
174mi_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
181mi_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
187mi_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
194mi_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
200mi_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
206mi_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
215mi_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
222mi_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
228mi_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
234mi_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
240mi_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
246mi_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
252mi_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
258mi_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
264mi_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
270mi_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
276mi_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
282mi_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
288mi_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
294mi_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
300mi_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
306mi_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
312mi_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
319mi_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
325mi_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
331mi_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
337mi_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
343mi_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
349mi_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
355mi_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
361mi_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
367mi_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
374mi_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
381mi_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
387mi_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
393mi_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
399mi_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
406mi_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
412mi_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
419mi_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
425mi_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
431mi_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
437mi_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
443mi_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
449mi_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
455mi_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
461mi_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
467mi_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
473mi_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
479mi_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
485mi_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
492mi_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
498mi_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
505mi_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
511mi_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
518mi_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
524mi_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
530mi_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
536mi_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
542mi_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
549mi_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;"
469aff8e
MC
555set line_dct_123 [gdb_get_line_number "struct_declarations.integer = 123;"]
556mi_step_to do_children_tests {} {.*var-cmd.c} \
557 $line_dct_123 "step to line \$line_dct_123"
2fcf52f0
AC
558
559# Test: c_variable-4.81
560# Desc: create local variable "weird"
43343e8b 561mi_create_varobj weird weird "create local variable weird"
2fcf52f0
AC
562
563# Test: c_variable-4.82
564# Desc: children of weird
565mi_gdb_test "-var-list-children weird" \
566 "\\^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 \{\\.\\.\\.\}\"\}\\\]" \
567 "get children of weird"
568
569# Test: c_variable-4.83
570# Desc: number of children of weird
571mi_gdb_test "-var-info-num-children weird" \
572 "\\^done,numchild=\"11\"" \
573 "get number of children of weird"
574
575
576# Test: c_variable-4.84
577# Desc: children of weird->long_array
578mi_gdb_test "-var-list-children weird.long_array" \
579 "\\^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\"\}\\\]" \
580 "get children of weird.long_array"
581#gdbtk_test c_variable-4.84 {children of weird->long_array} {
582# get_children weird.long_array
583#} {0 1 2 3 4 5 6 7 8 9}
584
585# Test: c_variable-4.85
586# Desc: number of children of weird.long_array
587mi_gdb_test "-var-info-num-children weird.long_array" \
588 "\\^done,numchild=\"10\"" \
589 "get number of children of weird.long_array"
590
591# Test: c_variable-4.86
592# Desc: children of weird.int_ptr_ptr
593mi_gdb_test "-var-list-children weird.int_ptr_ptr" \
594 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"weird.int_ptr_ptr.\\*int_ptr_ptr\",exp=\"\\*int_ptr_ptr\",numchild=\"1\",type=\"int \\*\"\}\\\]" \
595 "get children of weird.int_ptr_ptr"
596#gdbtk_test c_variable-4.86 {children of weird->int_ptr_ptr} {
597# get_children weird.int_ptr_ptr
598#} {*int_ptr_ptr}
599
600# Test: c_variable-4.87
601# Desc: number of children of weird.int_ptr_ptr
602mi_gdb_test "-var-info-num-children weird.int_ptr_ptr" \
603 "\\^done,numchild=\"1\"" \
604 "get number of children of weird.int_ptr_ptr"
605
606# Test: c_variable-4.88
607# Desc: children of *weird->int_ptr_ptr
608mi_gdb_test "-var-list-children weird.int_ptr_ptr.*int_ptr_ptr" \
609 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"weird.int_ptr_ptr.\\*int_ptr_ptr.\\*\\*int_ptr_ptr\",exp=\"\\*\\*int_ptr_ptr\",numchild=\"0\",type=\"int\"\}\\\]" \
610 "get children of weird.int_ptr_ptr.*int_ptr_ptr"
611#gdbtk_test c_variable-4.88 {children of *weird->int_ptr_ptr} {
612# get_children weird.int_ptr_ptr.*int_ptr_ptr
613#} {**int_ptr_ptr}
614
615# Test: c_variable-4.89
616# Desc: number of children *weird->int_ptr_ptr
617mi_gdb_test "-var-info-num-children weird.int_ptr_ptr.*int_ptr_ptr" \
618 "\\^done,numchild=\"1\"" \
619 "get number of children of weird.int_ptr_ptr.*int_ptr_ptr"
620
621# Test: c_variable-4.90
622# Desc: create weird->int_ptr_ptr
43343e8b
NR
623mi_create_varobj weird->int_ptr_ptr weird->int_ptr_ptr \
624 "create local variable weird->int_ptr_ptr"
2fcf52f0
AC
625
626# Test: c_variable-4.91
627# Desc: children of weird->int_ptr_ptr
628mi_gdb_test "-var-list-children weird->int_ptr_ptr" \
629 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"weird->int_ptr_ptr.\\*weird->int_ptr_ptr\",exp=\"\\*weird->int_ptr_ptr\",numchild=\"1\",type=\"int \\*\"\}\\\]" \
630 "get children of weird->int_ptr_ptr"
631
632
633# Test: c_variable-4.92
634# Desc: number of children of (weird->int_ptr_ptr)
635mi_gdb_test "-var-info-num-children weird->int_ptr_ptr" \
636 "\\^done,numchild=\"1\"" \
637 "get number of children of weird->int_ptr_ptr"
638
639# Test: c_variable-4.93
640# Desc: children of *(weird->int_ptr_ptr)
641mi_gdb_test "-var-list-children weird->int_ptr_ptr.*weird->int_ptr_ptr" \
642 "\\^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\"\}\\\]" \
643 "get children of weird->int_ptr_ptr.*weird->int_ptr_ptr"
644
645# Test: c_variable-4.94
646# Desc: number of children of *(weird->int_ptr_ptr)
647mi_gdb_test "-var-info-num-children weird->int_ptr_ptr.*weird->int_ptr_ptr" \
648 "\\^done,numchild=\"1\"" \
649 "get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr"
650
651# Test: c_variable-4.95
652# Desc: children of *(*(weird->int_ptr_ptr))
653mi_gdb_test "-var-list-children weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr" \
654 "\\^done,numchild=\"0\"" \
655 "get children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr"
656
657# Test: c_variable-4.96
658# Desc: number of children of *(*(weird->int_ptr_ptr))
659mi_gdb_test "-var-info-num-children weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr" \
660 "\\^done,numchild=\"0\"" \
661 "get number of children of weird->int_ptr_ptr.*weird->int_ptr_ptr.**weird->int_ptr_ptr"
662
663# Test: c_variable-4.97
664# Desc: is weird editable
665mi_gdb_test "-var-show-attributes weird" \
666 "\\^done,attr=\"editable\"" \
667 "is weird editable"
668
669# Test: c_variable-4.98
670# Desc: is weird->int_ptr_ptr editable
671mi_gdb_test "-var-show-attributes weird->int_ptr_ptr" \
672 "\\^done,attr=\"editable\"" \
673 "is weird->int_ptr_ptr editable"
674
675# Test: c_variable-4.99
676# Desc: is *(weird->int_ptr_ptr) editable
677mi_gdb_test "-var-show-attributes weird.int_ptr_ptr.*int_ptr_ptr" \
678 "\\^done,attr=\"editable\"" \
679 "is weird.int_ptr_ptr.*int_ptr_ptr editable"
680
681# Test: c_variable-4.100
682# Desc: is *(*(weird->int_ptr_ptr)) editable
683mi_gdb_test "-var-show-attributes weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr" \
684 "\\^done,attr=\"editable\"" \
685 "is weird.int_ptr_ptr.*int_ptr_ptr.**int_ptr_ptr editable"
686
687# Test: c_variable-4.101
688# Desc: is weird->u1 editable
689mi_gdb_test "-var-show-attributes weird.u1" \
690 "\\^done,attr=\"noneditable\"" \
691 "is weird.u1 editable"
692
693# Test: c_variable-4.102
694# Desc: is weird->s2 editable
695mi_gdb_test "-var-show-attributes weird.s2" \
696 "\\^done,attr=\"noneditable\"" \
697 "is weird.s2 editable"
698
699# Test: c_variable-4.103
700# Desc: is struct_declarations.u1.a editable
701mi_gdb_test "-var-show-attributes struct_declarations.u1.a" \
702 "\\^done,attr=\"editable\"" \
703 "is struct_declarations.u1.a editable"
704
705# Test: c_variable-4.104
706# Desc: is struct_declarations.u1.b editable
707mi_gdb_test "-var-show-attributes struct_declarations.u1.b" \
708 "\\^done,attr=\"editable\"" \
709 "is struct_declarations.u1.b editable"
710
711# Test: c_variable-4.105
712# Desc: is struct_declarations.u1.c editable
713mi_gdb_test "-var-show-attributes struct_declarations.u1.c" \
714 "\\^done,attr=\"editable\"" \
715 "is struct_declarations.u1.c editable"
716
717# Test: c_variable-4.106
718# Desc: is struct_declarations.long_array editable
719mi_gdb_test "-var-show-attributes struct_declarations.long_array" \
720 "\\^done,attr=\"noneditable\"" \
721 "is struct_declarations.long_array editable"
722
723# Test: c_variable-4.107
724# Desc: is struct_declarations.long_array[0] editable
725mi_gdb_test "-var-show-attributes struct_declarations.long_array.0" \
726 "\\^done,attr=\"editable\"" \
727 "is struct_declarations.long_array.0 editable"
728
729# Test: c_variable-4.108
730# Desc: is struct_declarations editable
731mi_gdb_test "-var-show-attributes struct_declarations" \
732 "\\^done,attr=\"noneditable\"" \
733 "is struct_declarations editable"
734
735mi_gdb_test "-var-delete weird" \
736 "\\^done,ndeleted=\"24\"" \
737 "delete var weird"
738
739##### #####
740# #
741# children and update tests #
742# #
743##### #####
744
745# Test: c_variable-5.1
746# Desc: check that nothing changed
747mi_gdb_test "-var-update *" \
748 "\\^done,changelist=\\\[\\\]" \
749 "update all vars. None changed"
750
751# Step over "struct_declarations.integer = 123;"
469aff8e
MC
752mi_step_to do_children_tests {} {.*var-cmd.c} \
753 [expr $line_dct_123 + 1] "step \$line_dct_123 + 1"
2fcf52f0
AC
754
755# Test: c_variable-5.2
756# Desc: check that integer changed
757mi_gdb_test "-var-update *" \
758 "\\^done,changelist=\\\[\{name=\"struct_declarations.integer\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
759 "update all vars struct_declarations.integer"
760
761# Step over:
762# weird->char_ptr = "hello";
763# bar = 2121;
764# foo = &bar;
469aff8e
MC
765mi_execute_to "exec-step 3" "end-stepping-range" do_children_tests {} {.*var-cmd.c} \
766 [expr $line_dct_123 + 4] {} "step \$line_dct_123 + 4"
2fcf52f0
AC
767
768# Test: c_variable-5.3
769# Desc: check that char_ptr changed
770mi_gdb_test "-var-update *" \
771 "\\^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\"\}\\\]" \
772 "update all vars struct_declarations.char_ptr"
773
774# Step over "struct_declarations.int_ptr_ptr = &foo;"
469aff8e
MC
775mi_step_to do_children_tests {} {.*var-cmd.c} \
776 [expr $line_dct_123 + 5] "step \$line_dct_123 + 5"
2fcf52f0
AC
777
778# Test: c_variable-5.4
779# Desc: check that int_ptr_ptr and children changed
780mi_gdb_test "-var-update *" \
781 "\\^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\"\}\\\]" \
782 "update all vars int_ptr_ptr and children changed"
783
784# Step over "weird->long_array[0] = 1234;"
469aff8e
MC
785mi_step_to do_children_tests {} {.*var-cmd.c} \
786 [expr $line_dct_123 + 6] "step \$line_dct_123 + 6"
2fcf52f0
AC
787
788# Test: c_variable-5.5
789# Desc: check that long_array[0] changed
790mi_gdb_test "-var-update *" \
791 "\\^done,changelist=\\\[\{name=\"struct_declarations.long_array.0\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
792 "update all vars struct_declarations.long_array.0 changed"
793
794# Step over "struct_declarations.long_array[1] = 2345;"
469aff8e
MC
795mi_step_to do_children_tests {} {.*var-cmd.c} \
796 [expr $line_dct_123 + 7] "step \$line_dct_123 + 7"
2fcf52f0
AC
797
798# Test: c_variable-5.6
799# Desc: check that long_array[1] changed
800mi_gdb_test "-var-update *" \
801 "\\^done,changelist=\\\[\{name=\"struct_declarations.long_array.1\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
802 "update all vars struct_declarations.long_array.1 changed"
803
804# Step over "weird->long_array[2] = 3456;"
469aff8e
MC
805mi_step_to do_children_tests {} {.*var-cmd.c} \
806 [expr $line_dct_123 + 8] "step \$line_dct_123 + 8"
2fcf52f0
AC
807
808# Test: c_variable-5.7
809# Desc: check that long_array[2] changed
810mi_gdb_test "-var-update *" \
811 "\\^done,changelist=\\\[\{name=\"struct_declarations.long_array.2\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
812 "update all vars struct_declarations.long_array.2 changed"
813
814# Step over:
815# struct_declarations.long_array[3] = 4567;
816# weird->long_array[4] = 5678;
817# struct_declarations.long_array[5] = 6789;
818# weird->long_array[6] = 7890;
819# struct_declarations.long_array[7] = 8901;
820# weird->long_array[8] = 9012;
821# struct_declarations.long_array[9] = 1234;
469aff8e
MC
822
823set line_dct_nothing [gdb_get_line_number "weird->func_ptr = nothing;"]
824mi_execute_to "exec-step 7" "end-stepping-range" do_children_tests {} {.*var-cmd.c} \
825 $line_dct_nothing {} "step \$line_dct_nothing"
2fcf52f0
AC
826
827# Test: c_variable-5.8
828# Desc: check that long_array[3-9] changed
829mi_gdb_test "-var-update *" \
830 "\\^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\"\}\\\]" \
831 "update all vars struct_declarations.long_array.3-9 changed"
832
833
834# Step over "weird->func_ptr = nothing;"
469aff8e
MC
835set line_dct_a0_0 [gdb_get_line_number "a0 = '0';"]
836mi_step_to do_children_tests {} {.*var-cmd.c} \
837 $line_dct_a0_0 "step \$line_dct_a0_0"
2fcf52f0
AC
838
839# Test: c_variable-5.9
840# Desc: check that func_ptr changed
841mi_gdb_test "-var-update *" \
842 "\\^done,changelist=\\\[\{name=\"struct_declarations.func_ptr\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
843 "update all vars struct_declarations.func_ptr changed"
844
845# Delete all variables
846mi_gdb_test "-var-delete struct_declarations" \
847 "\\^done,ndeleted=\"65\"" \
848 "delete var struct_declarations"
849
850mi_gdb_test "-var-delete weird->int_ptr_ptr" \
851 "\\^done,ndeleted=\"3\"" \
852 "delete var weird->int_ptr_ptr"
853
854# Step over all lines:
855# ...
856# psnp = &snp0;
469aff8e
MC
857
858set line_dct_snp0 [gdb_get_line_number "psnp = &snp0;"]
859mi_execute_to "exec-step 43" "end-stepping-range" do_children_tests {} {.*var-cmd.c} \
860 [expr $line_dct_snp0 + 1] {} "step \$line_dct_snp0 + 1"
2fcf52f0
AC
861
862# Test: c_variable-5.10
863# Desc: create psnp->char_ptr
43343e8b
NR
864mi_create_varobj psnp->char_ptr psnp->char_ptr \
865 "create local variable psnp->char_ptr"
2fcf52f0
AC
866
867# Test: c_variable-5.11
868# Desc: children of psnp->char_ptr
869mi_gdb_test "-var-list-children psnp->char_ptr" \
870 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->char_ptr.\\*psnp->char_ptr\",exp=\"\\*psnp->char_ptr\",numchild=\"1\",type=\"char \\*\\*\\*\"\}\\\]" \
871 "get children of psnp->char_ptr"
872
873# Test: c_variable-5.12
874# Desc: number of children of psnp->char_ptr
875mi_gdb_test "-var-info-num-children psnp->char_ptr" \
876 "\\^done,numchild=\"1\"" \
877 "get number of children of psnp->char_ptr"
878
879# Test: c_variable-5.13
880# Desc: children of *(psnp->char_ptr)
881mi_gdb_test "-var-list-children psnp->char_ptr.*psnp->char_ptr" \
882 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->char_ptr.\\*psnp->char_ptr.\\*\\*psnp->char_ptr\",exp=\"\\*\\*psnp->char_ptr\",numchild=\"1\",type=\"char \\*\\*\"\}\\\]" \
883 "get children of psnp->char_ptr.*psnp->char_ptr"
884
885# Test: c_variable-5.14
886# Desc: number of children of *(psnp->char_ptr)
887mi_gdb_test "-var-info-num-children psnp->char_ptr.*psnp->char_ptr" \
888 "\\^done,numchild=\"1\"" \
889 "get number of children of psnp->char_ptr.*psnp->char_ptr"
890
891# Test: c_variable-5.15
892# Desc: children of *(*(psnp->char_ptr))
893mi_gdb_test "-var-list-children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr" \
894 "\\^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 \\*\"\}\\\]" \
895 "get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr"
896
897# Test: c_variable-5.15B
898# Desc: children of *(*(*(psnp->char_ptr)))
899mi_gdb_test "-var-list-children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr" \
900 "\\^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\"\}\\\]" \
901 "get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr"
902
903# Test: c_variable-5.16
904# Desc: number of children of *(*(psnp->char_ptr))
905mi_gdb_test "-var-info-num-children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr" \
906 "\\^done,numchild=\"1\"" \
907 "get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr"
908
909# Test: c_variable-5.17
910# Desc: children of *(*(*(psnp->char_ptr)))
911mi_gdb_test "-var-list-children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr" \
912 "\\^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\"\}\\\]" \
913 "get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr"
914
915# Test: c_variable-5.18
916# Desc: number of children of *(*(*(psnp->char_ptr)))
917mi_gdb_test "-var-info-num-children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr" \
918 "\\^done,numchild=\"1\"" \
919 "get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr"
920
921# Test: c_variable-5.17B
922# Desc: children of *(*(*(*(psnp->char_ptr))))
923mi_gdb_test "-var-list-children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr" \
924 "\\^done,numchild=\"0\"" \
925 "get children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr"
926
927# Test: c_variable-5.18B
928# Desc: number of children of *(*(*(*(psnp->char_ptr))))
929mi_gdb_test "-var-info-num-children psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr" \
930 "\\^done,numchild=\"0\"" \
931 "get number of children of psnp->char_ptr.*psnp->char_ptr.**psnp->char_ptr.***psnp->char_ptr.****psnp->char_ptr"
932
933
934# Test: c_variable-5.19
935# Desc: create psnp->long_ptr
43343e8b
NR
936mi_create_varobj psnp->long_ptr psnp->long_ptr \
937 "create local variable psnp->long_ptr"
2fcf52f0
AC
938
939# Test: c_variable-5.20
940# Desc: children of psnp->long_ptr
941mi_gdb_test "-var-list-children psnp->long_ptr" \
942 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->long_ptr.\\*psnp->long_ptr\",exp=\"\\*psnp->long_ptr\",numchild=\"1\",type=\"long int \\*\\*\\*\"\}\\\]" \
943 "get children of psnp->long_ptr"
944
945# Test: c_variable-5.21
946# Desc: number of children of psnp->long_ptr
947mi_gdb_test "-var-info-num-children psnp->long_ptr" \
948 "\\^done,numchild=\"1\"" \
949 "get number of children of psnp->long_ptr"
950
951# Test: c_variable-5.22
952# Desc: children of *(psnp->long_ptr)
953mi_gdb_test "-var-list-children psnp->long_ptr.*psnp->long_ptr" \
954 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->long_ptr.\\*psnp->long_ptr.\\*\\*psnp->long_ptr\",exp=\"\\*\\*psnp->long_ptr\",numchild=\"1\",type=\"long int \\*\\*\"\}\\\]" \
955 "get children of psnp->long_ptr.*psnp->long_ptr"
956
957
958# Test: c_variable-5.23
959# Desc: number of children of *(psnp->long_ptr)
960mi_gdb_test "-var-info-num-children psnp->long_ptr.*psnp->long_ptr" \
961 "\\^done,numchild=\"1\"" \
962 "get number of children of psnp->long_ptr.*psnp->long_ptr"
963
964# Test: c_variable-5.24
965# Desc: children of *(*(psnp->long_ptr))
966mi_gdb_test "-var-list-children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr" \
967 "\\^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 \\*\"\}\\\]" \
968 "get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr"
969
970# Test: c_variable-5.25
971# Desc: number of children of *(*(psnp->long_ptr))
972mi_gdb_test "-var-info-num-children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr" \
973 "\\^done,numchild=\"1\"" \
974 "get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr"
975
976# Test: c_variable-5.26
977# Desc: children of *(*(*(psnp->long_ptr)))
978mi_gdb_test "-var-list-children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr" \
979 "\\^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\"\}\\\]" \
980 "get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr"
981
982# Test: c_variable-5.27
983# Desc: number of children of *(*(*(psnp->long_ptr)))
984mi_gdb_test "-var-info-num-children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr" \
985 "\\^done,numchild=\"1\"" \
986 "get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr"
987
988# Test: c_variable-5.28
989# Desc: children of *(*(*(*(psnp->long_ptr))))
990mi_gdb_test "-var-list-children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr" \
991 "\\^done,numchild=\"0\"" \
992 "get children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr"
993
994# Test: c_variable-5.29
995# Desc: number of children of *(*(*(*(psnp->long_ptr))))
996mi_gdb_test "-var-info-num-children psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr" \
997 "\\^done,numchild=\"0\"" \
998 "get number of children of psnp->long_ptr.*psnp->long_ptr.**psnp->long_ptr.***psnp->long_ptr.****psnp->long_ptr"
999
1000# Test: c_variable-5.30
1001# Desc: create psnp->ptrs
43343e8b
NR
1002mi_create_varobj psnp->ptrs psnp->ptrs "create local variable psnp->ptrs"
1003
2fcf52f0
AC
1004
1005# Test: c_variable-5.31
1006# Desc: children of psnp->ptrs
1007mi_gdb_test "-var-list-children psnp->ptrs" \
1008 "\\^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 \\*\"\}\\\]" \
1009 "get children of psnp->ptrs"
1010
1011# Test: c_variable-5.32
1012# Desc: number of children of psnp->ptrs
1013mi_gdb_test "-var-info-num-children psnp->ptrs" \
1014 "\\^done,numchild=\"3\"" \
1015 "get number of children of psnp->ptrs"
1016
1017# Test: c_variable-5.33
1018# Desc: children of psnp->ptrs[0]
1019mi_gdb_test "-var-list-children psnp->ptrs.0" \
1020 "\\^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 \\*\"\}\\\]" \
1021 "get children of psnp->ptrs.0"
1022
1023# Test: c_variable-5.34
1024# Desc: number of children of psnp->ptrs[0]
1025mi_gdb_test "-var-info-num-children psnp->ptrs.0" \
1026 "\\^done,numchild=\"4\"" \
1027 "get number of children of psnp->ptrs.0"
1028
1029# Test: c_variable-5.35
1030# Desc: children of psnp->ptrs[0]->next
1031mi_gdb_test "-var-list-children psnp->ptrs.0.next" \
1032 "\\^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 \\*\"\}\\\]" \
1033 "get children of psnp->ptrs.0.next"
1034
1035#} {char_ptr long_ptr ptrs next}
1036
1037# Test: c_variable-5.36
1038# Desc: number of children of psnp->ptrs[0]->next
1039mi_gdb_test "-var-info-num-children psnp->ptrs.0.next" \
1040 "\\^done,numchild=\"4\"" \
1041 "get number of children of psnp->ptrs.0.next"
1042
1043
1044# Test: c_variable-5.37
1045# Desc: children of psnp->ptrs[0]->next->char_ptr
1046mi_gdb_test "-var-list-children psnp->ptrs.0.next.char_ptr" \
1047 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->ptrs.0.next.char_ptr.\\*char_ptr\",exp=\"\\*char_ptr\",numchild=\"1\",type=\"char \\*\\*\\*\"\}\\\]" \
1048 "get children of psnp->ptrs.0.next.char_ptr"
1049
1050#gdbtk_test c_variable-5.37 {children of psnp->ptrs[0]->next->char_ptr} {
1051# get_children psnp->ptrs.0.next.char_ptr
1052#} {*char_ptr}
1053
1054# Test: c_variable-5.38
1055# Desc: number of children of psnp->ptrs[0]->next->char_ptr
1056mi_gdb_test "-var-info-num-children psnp->ptrs.0.next.char_ptr" \
1057 "\\^done,numchild=\"1\"" \
1058 "get number of children of psnp->ptrs.0.next.char_ptr"
1059
1060# Test: c_variable-5.39
1061# Desc: children of *psnp->ptrs[0]->next->char_ptr
1062mi_gdb_test "-var-list-children psnp->ptrs.0.next.char_ptr.*char_ptr" \
1063 "\\^done,numchild=\"1\",children=\\\[child=\{name=\"psnp->ptrs.0.next.char_ptr.\\*char_ptr.\\*\\*char_ptr\",exp=\"\\*\\*char_ptr\",numchild=\"1\",type=\"char \\*\\*\"\}\\\]" \
1064 "get children of psnp->ptrs.0.next.char_ptr.*char_ptr"
1065
1066# Test: c_variable-5.40
1067# Desc: number of children of *psnp->ptrs[0]->next->char_ptr
1068mi_gdb_test "-var-info-num-children psnp->ptrs.0.next.char_ptr.*char_ptr" \
1069 "\\^done,numchild=\"1\"" \
1070 "get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr"
1071
1072# Test: c_variable-5.41
1073# Desc: children of **psnp->ptrs[0]->next->char_ptr
1074mi_gdb_test "-var-list-children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr" \
1075 "\\^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 \\*\"\}\\\]" \
1076 "get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr"
1077
1078# Test: c_variable-5.41B
1079# Desc: children of ***psnp->ptrs[0]->next->char_ptr
1080mi_gdb_test "-var-list-children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr" \
1081 "\\^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\"\}\\\]" \
1082 "get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr"
1083
1084# Test: c_variable-5.42
1085# Desc: number of children of **psnp->ptrs[0]->next->char_ptr
1086mi_gdb_test "-var-info-num-children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr" \
1087 "\\^done,numchild=\"1\"" \
1088 "get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr"
1089
1090# Test: c_variable-5.43
1091# Desc: children of ***psnp->ptrs[0]->next->char_ptr
1092mi_gdb_test "-var-list-children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr" \
1093 "\\^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\"\}\\\]" \
1094 "get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr"
1095
1096# Test: c_variable-5.44
1097# Desc: number of children of ***psnp->ptrs[0]->next->char_ptr
1098mi_gdb_test "-var-info-num-children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr" \
1099 "\\^done,numchild=\"1\"" \
1100 "get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr"
1101
1102# Test: c_variable-5.43B
1103# Desc: children of ****psnp->ptrs[0]->next->char_ptr
1104mi_gdb_test "-var-list-children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr.****char_ptr" \
1105 "\\^done,numchild=\"0\"" \
1106 "get children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr"
1107
1108# Test: c_variable-5.44B
1109# Desc: number of children of ****psnp->ptrs[0]->next->char_ptr
1110mi_gdb_test "-var-info-num-children psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr.****char_ptr" \
1111 "\\^done,numchild=\"0\"" \
1112 "get number of children of psnp->ptrs.0.next.char_ptr.*char_ptr.**char_ptr.***char_ptr"
1113
1114# Test: c_variable-5.45
1115# Desc: children of psnp->ptrs[0]->next->next
1116mi_gdb_test "-var-list-children psnp->ptrs.0.next.next" \
1117 "\\^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 \\*\"\}\\\]" \
1118 "get children of psnp->ptrs.0.next.next"
1119
1120# Test: c_variable-5.46
1121# Desc: children of psnp->ptrs[0]->next->next->ptrs
1122mi_gdb_test "-var-list-children psnp->ptrs.0.next.next.ptrs" \
1123 "\\^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 \\*\"\}\\\]" \
1124 "get children of psnp->ptrs.0.next.next.ptrs"
1125
1126# Step over "snp0.char_ptr = &b3;"
469aff8e
MC
1127mi_step_to do_children_tests {} {.*var-cmd.c} \
1128 [expr $line_dct_snp0 + 2] "step \$line_dct_snp0 + 2"
2fcf52f0
AC
1129
1130# Test: c_variable-5.47
1131# Desc: check that psnp->char_ptr (and [0].char_ptr) changed
1132mi_gdb_test "-var-update *" \
1133 "\\^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\"\}\\\]" \
1134 "update all vars psnp->char_ptr (and 0.char_ptr) changed"
1135
1136# Step over "snp1.char_ptr = &c3;"
469aff8e
MC
1137mi_step_to do_children_tests {} {.*var-cmd.c} \
1138 [expr $line_dct_snp0 + 3] "step \$line_dct_snp0 + 3"
2fcf52f0
AC
1139
1140# Test: c_variable-5.48
1141# Desc: check that psnp->next->char_ptr (and [1].char_ptr) changed
1142mi_gdb_test "-var-update *" \
1143 "\\^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\"\}\\\]" \
1144 "update all vars psnp->next->char_ptr (and 1.char_ptr) changed"
1145
1146
1147# Step over "snp2.char_ptr = &a3;"
469aff8e
MC
1148mi_step_to do_children_tests {} {.*var-cmd.c} \
1149 [expr $line_dct_snp0 + 4] "step \$line_dct_snp0 + 4"
2fcf52f0
AC
1150
1151# Test: c_variable-5.49
1152# Desc: check that psnp->next->next->char_ptr (and [2].char_ptr) changed
1153mi_gdb_test "-var-update *" \
1154 "\\^done,changelist=\\\[\{name=\"psnp->ptrs.0.next.next.char_ptr\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
1155 "update all vars psnp->next->next->char_ptr (and 2.char_ptr) changed"
1156
1157
1158# Step over "snp0.long_ptr = &y3;"
469aff8e
MC
1159mi_step_to do_children_tests {} {.*var-cmd.c} \
1160 [expr $line_dct_snp0 + 5] "step \$line_dct_snp0 + 5"
2fcf52f0
AC
1161
1162# Test: c_variable-5.50
1163# Desc: check that psnp->long_ptr (and [0].long_ptr) changed
1164mi_gdb_test "-var-update *" \
1165 "\\^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\"\}\\\]" \
1166 "update all vars psnp->long_ptr (and 0.long_ptr) changed"
1167
1168
1169# Step over "snp1.long_ptr = &x3;"
469aff8e
MC
1170mi_step_to do_children_tests {} {.*var-cmd.c} \
1171 [expr $line_dct_snp0 + 6] "step \$line_dct_snp0 + 6"
2fcf52f0
AC
1172
1173# Test: c_variable-5.51
1174# Desc: check that psnp->next->long_ptr (and [1].long_ptr) changed
1175# Why does this have a FIXME?
1176setup_xfail *-*-*
1177mi_gdb_test "-var-update *" \
1178 "FIXME\\^done,changelist=\\\[\{name=\"psnp->ptrs.0.next.long_ptr\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
1179 "update all vars psnp->next->long_ptr (and 1.long_ptr) changed"
1180clear_xfail *-*-*
1181
1182# This command produces this error message:
1183# &"warning: varobj_list: assertion failed - mycount <> 0\n"
1184#
1185
1186# Step over "snp2.long_ptr = &z3;"
469aff8e
MC
1187mi_step_to do_children_tests {} {.*var-cmd.c} \
1188 [expr $line_dct_snp0 + 7] "step \$line_dct_snp0 + 7"
2fcf52f0
AC
1189
1190# Test: c_variable-5.52
1191# Desc: check that psnp->next->next->long_ptr (and [2].long_ptr) changed
1192mi_gdb_test "-var-update *" \
1193 "\\^done,changelist=\\\[\{name=\"psnp->ptrs.0.next.next.long_ptr\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
1194 "update all vars psnp->next->next->long_ptr (and 2.long_ptr) changed"
1195
1196
1197
1198
1199mi_gdb_exit
1200return 0