gdb/
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.mi / mi2-var-cmd.exp
CommitLineData
0fb0cc75 1# Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2004, 2007, 2008, 2009
6aba47ca 2# Free Software Foundation, Inc.
2fcf52f0 3#
e22f8b7c 4# This program is free software; you can redistribute it and/or modify
2fcf52f0 5# it under the terms of the GNU General Public License as published by
e22f8b7c 6# the Free Software Foundation; either version 3 of the License, or
2fcf52f0
AC
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
e22f8b7c 15# along with this program. If not, see <http://www.gnu.org/licenses/>.
2fcf52f0 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
3788363d 33set binfile ${objdir}/${subdir}/mi2-var-cmd
2fcf52f0 34if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } {
b60f0898
JB
35 untested mi2-var-cmd.exp
36 return -1
2fcf52f0
AC
37}
38
39mi_delete_breakpoints
40mi_gdb_reinitialize_dir $srcdir/$subdir
41mi_gdb_load ${binfile}
42
43
44##### #####
45# #
46# Variable Creation tests #
47# #
48##### #####
49
50# Test: c_variable-1.1
51# Desc: Create global variable
52
9e8e3afe 53mi_create_varobj "global_simple" "global_simple" "create global variable"
2fcf52f0
AC
54
55# Test: c_variable-1.2
56# Desc: Create non-existent variable
57
58mi_gdb_test "112-var-create bogus_unknown_variable * bogus_unknown_variable" \
a13e061a 59 "112\\^error,msg=\"mi_cmd_var_create: unable to create variable object\"" \
2fcf52f0
AC
60 "create non-existent variable"
61
62# Test: c_variable-1.3
63# Desc: Create out of scope variable
64
65mi_gdb_test "113-var-create argc * argc" \
a13e061a 66 "113\\^error,msg=\"mi_cmd_var_create: unable to create variable object\"" \
2fcf52f0
AC
67 "create out of scope variable"
68
69mi_runto do_locals_tests
70
a73bafbc
VP
71set line_dlt_first_real [gdb_get_line_number "linteger = 1234;"]
72
73mi_continue_to_line $line_dlt_first_real "step to real start of do_locals_test"
74
75
2fcf52f0
AC
76# Test: c_variable-1.4
77# Desc: create local variables
78
9e8e3afe 79mi_create_varobj_checked linteger linteger int "create local variable linteger"
2fcf52f0 80
9e8e3afe 81mi_create_varobj_checked lpinteger lpinteger {int \*} "create local variable lpinteger"
2fcf52f0 82
9e8e3afe 83mi_create_varobj_checked lcharacter lcharacter\[0\] char "create local variable lcharacter"
2fcf52f0 84
9e8e3afe 85mi_create_varobj_checked lpcharacter lpcharacter {char \*} "create local variable lpcharacter"
2fcf52f0 86
9e8e3afe 87mi_create_varobj_checked llong llong "long int" "create local variable llong"
2fcf52f0 88
9e8e3afe 89mi_create_varobj_checked lplong lplong {long int \*} "create local variable lplong"
2fcf52f0 90
9e8e3afe 91mi_create_varobj_checked lfloat lfloat float "create local variable lfloat"
2fcf52f0 92
9e8e3afe 93mi_create_varobj_checked lpfloat lpfloat {float \*} "create local variable lpfloat"
2fcf52f0 94
9e8e3afe 95mi_create_varobj_checked ldouble ldouble double "create local variable ldouble"
2fcf52f0 96
9e8e3afe 97mi_create_varobj_checked lpdouble lpdouble {double \*} "create local variable lpdouble"
2fcf52f0 98
9e8e3afe 99mi_create_varobj_checked lsimple lsimple "struct _simple_struct" "create local variable lsimple"
2fcf52f0 100
9e8e3afe 101mi_create_varobj_checked lpsimple lpsimple {struct _simple_struct \*} "create local variable lpsimple"
2fcf52f0 102
9e8e3afe 103mi_create_varobj_checked func func {void \(\*\)\((void|)\)} "create local variable func"
2fcf52f0
AC
104
105# Test: c_variable-1.5
106# Desc: create lsimple.character
9e8e3afe 107mi_create_varobj_checked lsimple.character lsimple.character "char" \
3fddb3ad 108 "create lsimple.character"
2fcf52f0
AC
109
110# Test: c_variable-1.6
111# Desc: create lpsimple->integer
9e8e3afe 112mi_create_varobj_checked lsimple->integer lsimple->integer "int" \
3fddb3ad 113 "create lsimple->integer"
2fcf52f0
AC
114
115# Test: c_variable-1.7
9e8e3afe
VP
116# Desc: crate lsimple.integer
117mi_create_varobj_checked lsimple.integer lsimple.integer "int" \
118 "create lsimple.integer"
3fddb3ad 119
2fcf52f0
AC
120
121# Test: c_variable-1.9
122# Desc: create type name
123# Type names (like int, long, etc..) are all proper expressions to gdb.
124# make sure variable code does not allow users to create variables, though.
125mi_gdb_test "-var-create int * int" \
a13e061a 126 "&\"Attempt to use a type name as an expression.\\\\n\".*\\^error,msg=\"mi_cmd_var_create: unable to create variable object\"" \
2fcf52f0
AC
127 "create int"
128
4e22772d
JK
129# The number 0 must be an invalid frame address and linteger a local variable.
130mi_gdb_test "-var-create invalidframe 0 linteger" \
131 "\\^error,msg=\"Failed to find the specified frame\"" \
132 "create variable with invalid FRAME-ADDR"
133
2fcf52f0
AC
134
135##### #####
136# #
137# Value changed tests #
138# #
139##### #####
140
141# Test: c_variable-2.1
142# Desc: check whether values changed at do_block_tests
143mi_gdb_test "-var-update *" \
144 "\\^done,changelist=\\\[\\\]" \
145 "update all vars"
146
147# Step over "linteger = 1234;"
469aff8e
MC
148set line_dlt_linteger [gdb_get_line_number "lpinteger = &linteger;"]
149mi_step_to "do_locals_tests" "" "var-cmd.c" $line_dlt_linteger "step at do_locals_test"
2fcf52f0
AC
150
151# Test: c_variable-2.2
152# Desc: check whether only linteger changed values
153mi_gdb_test "-var-update *" \
154 "\\^done,changelist=\\\[\{name=\"linteger\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
155 "update all vars: linteger changed"
156
157# Step over "lpinteger = &linteger;"
469aff8e 158mi_step_to "do_locals_tests" "" "var-cmd.c" [expr $line_dlt_linteger + 1] "step at do_locals_tests (2)"
2fcf52f0
AC
159
160# Test: c_variable-2.3
161# Desc: check whether only lpinteger changed
162mi_gdb_test "-var-update *" \
163 "\\^done,changelist=\\\[\{name=\"lpinteger\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
164 "update all vars: lpinteger changed"
165
166# Step over "lcharacter = 'a';"
469aff8e 167mi_step_to "do_locals_tests" "" "var-cmd.c" [expr $line_dlt_linteger + 2] "step at do_locals_tests (3)"
2fcf52f0
AC
168
169# Test: c_variable-2.4
170# Desc: check whether only lcharacter changed
171mi_gdb_test "-var-update *" \
172 "\\^done,changelist=\\\[\{name=\"lcharacter\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
173 "update all vars: lcharacter changed"
174
175# Step over "lpcharacter = &lcharacter;"
469aff8e 176mi_step_to "do_locals_tests" "" "var-cmd.c" [expr $line_dlt_linteger + 3] "step at do_locals_tests (4)"
2fcf52f0
AC
177
178# Test: c_variable-2.5
179# Desc: check whether only lpcharacter changed
180mi_gdb_test "-var-update *" \
181 "\\^done,changelist=\\\[\{name=\"lpcharacter\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
182 "update all vars: lpcharacter changed"
183
184
185# Step over:
186# llong = 2121L;
187# lplong = &llong;
188# lfloat = 2.1;
189# lpfloat = &lfloat;
190# ldouble = 2.718281828459045;
191# lpdouble = &ldouble;
192# lsimple.integer = 1234;
193# lsimple.unsigned_integer = 255;
194# lsimple.character = 'a';
195
196mi_execute_to "exec-step 9" "end-stepping-range" "do_locals_tests" "" \
469aff8e 197 "var-cmd.c" [expr $line_dlt_linteger + 12] "" "step at do_locals_tests (5)"
2fcf52f0
AC
198
199# Test: c_variable-2.6
200# Desc: check whether llong, lplong, lfloat, lpfloat, ldouble, lpdouble, lsimple.integer,
201# lsimple.unsigned_character lsimple.integer lsimple.character changed
202mi_gdb_test "-var-update *" \
203 "\\^done,changelist=\\\[\{name=\"lsimple.integer\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"lsimple->integer\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"lsimple.character\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"lpdouble\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"ldouble\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"lpfloat\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"lfloat\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"lplong\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"llong\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
204 "update all vars: many changed"
205
206# Step over:
207# lsimple.signed_character = 21;
208# lsimple.char_ptr = &lcharacter;
209# lpsimple = &lsimple;
210# func = nothing;
211
469aff8e
MC
212set line_dlt_4321 [gdb_get_line_number "linteger = 4321;"]
213
2fcf52f0 214mi_execute_to "exec-step 4" "end-stepping-range" "do_locals_tests" "" \
469aff8e 215 "var-cmd.c" $line_dlt_4321 "" "step at do_locals_tests (6)"
2fcf52f0
AC
216
217# Test: c_variable-2.7
218# Desc: check whether (lsimple.signed_character, lsimple.char_ptr) lpsimple, func changed
219mi_gdb_test "-var-update *" \
220 "\\^done,changelist=\\\[\{name=\"func\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"lpsimple\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
221 "update all vars: func and lpsimple changed"
222
223# Step over
224# linteger = 4321;
225# lcharacter = 'b';
226# llong = 1212L;
227# lfloat = 1.2;
228# ldouble = 5.498548281828172;
229# lsimple.integer = 255;
230# lsimple.unsigned_integer = 4321;
231# lsimple.character = 'b';
232
233mi_execute_to "exec-step 8" "end-stepping-range" "do_locals_tests" "" \
469aff8e 234 "var-cmd.c" [expr $line_dlt_4321 + 8] "" "step at do_locals_tests (7)"
2fcf52f0
AC
235
236# Test: c_variable-2.8
237# Desc: check whether linteger, lcharacter, llong, lfoat, ldouble, lsimple.integer,
238# lpsimple.integer lsimple.character changed
239# Note: this test also checks that lpsimple->integer and lsimple.integer have
240# changed (they are the same)
241mi_gdb_test "-var-update *" \
57e66780
DJ
242 "\\^done,changelist=\\\[\{name=\"lsimple.integer\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"lsimple->integer\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"lsimple.character\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"ldouble\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"lfloat\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"llong\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"lpcharacter\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"lcharacter\",in_scope=\"true\",type_changed=\"false\"\},\{name=\"linteger\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
243 "update all vars: lsimple and others changed"
2fcf52f0
AC
244
245
246###
247#
248# Test assignment to variables. More tests on assignment are in other files.
249#
250###
251mi_gdb_test "-var-assign global_simple 0" \
a13e061a 252 "\\^error,msg=\"mi_cmd_var_assign: Variable object is not editable\"" \
2fcf52f0
AC
253 "assign to global_simple"
254
255mi_gdb_test "-var-assign linteger 3333" \
256 "\\^done,value=\"3333\"" \
257 "assign to linteger"
258
57e66780
DJ
259# Allow lpcharacter to update, optionally. Because it points to a
260# char variable instead of a zero-terminated string, if linteger is
261# directly after it in memory the printed characters may appear to
262# change.
263set lpchar_update "\{name=\"lpcharacter\",in_scope=\"true\",type_changed=\"false\"\},"
2fcf52f0 264mi_gdb_test "-var-update *" \
57e66780 265 "\\^done,changelist=\\\[($lpchar_update)?\{name=\"linteger\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
2fcf52f0
AC
266 "update all vars: linteger changed after assign"
267
268mi_gdb_test "-var-assign linteger 3333" \
269 "\\^done,value=\"3333\"" \
270 "assign to linteger again, same value"
271
272mi_gdb_test "-var-update *" \
273 "\\^done,changelist=\\\[\\\]" \
274 "update all vars: linteger not changed after same assign"
275
276mi_gdb_test "-var-evaluate-expression linteger" \
277 "\\^done,value=\"3333\"" \
278 "eval linteger"
279
280mi_gdb_test "-var-assign lpinteger \"&linteger + 3\"" \
281 "\\^done,value=\"$hex\"" \
282 "assign to lpinteger"
283
284mi_gdb_test "-var-update *" \
285 "\\^done,changelist=\\\[\{name=\"lpinteger\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
286 "update all vars: lpinteger changed after assign"
287
288mi_gdb_test "-var-update *" \
289 "\\^done,changelist=\\\[\\\]" \
290 "update all vars: no changes on second update"
291
292mi_gdb_test "-var-evaluate-expression lpinteger" \
293 "\\^done,value=\"$hex\"" \
294 "eval lpinteger"
295
296# reset the values to the original ones so that the rest of the file doesn't suffer.
297
298mi_gdb_test "-var-assign linteger 4321" \
299 "\\^done,value=\"4321\"" \
300 "assign to linteger"
301
302mi_gdb_test "-var-assign lpinteger &linteger" \
303 "\\^done,value=\"$hex\"" \
304 "assign to lpinteger"
305
306mi_gdb_test "-var-assign lcharacter 'z'" \
307 "\\^done,value=\"122 'z'\"" \
308 "assign to lcharacter"
309
310mi_gdb_test "-var-evaluate-expression lcharacter" \
311 "\\^done,value=\"122 'z'\"" \
312 "eval lcharacter"
313
314mi_gdb_test "-var-assign llong 1313L" \
315 "\\^done,value=\"1313\"" \
316 "assign to llong"
317mi_gdb_test "-var-evaluate-expression llong" \
318 "\\^done,value=\"1313\"" \
319 "eval llong"
320mi_gdb_test "-var-assign llong 1212L" \
321 "\\^done,value=\"1212\"" \
322 "assign to llong"
323
324mi_gdb_test "-var-assign lplong &llong+4" \
325 "\\^done,value=\"$hex\"" \
326 "assign to lplong"
327mi_gdb_test "-var-evaluate-expression lplong" \
328 "\\^done,value=\"$hex\"" \
329 "eval lplong"
330mi_gdb_test "-var-assign lplong &llong" \
331 "\\^done,value=\"$hex\"" \
332 "assign to lplong"
333
334mi_gdb_test "-var-assign lfloat 3.4567" \
335 "\\^done,value=\"3.45.*\"" \
336 "assign to lfloat"
337mi_gdb_test "-var-evaluate-expression lfloat" \
338 "\\^done,value=\"3.45.*\"" \
339 "eval lfloat"
340mi_gdb_test "-var-assign lfloat 1.2345" \
341 "\\^done,value=\"1.23.*\"" \
342 "assign to lfloat"
343
344mi_gdb_test "-var-assign lpfloat &lfloat+4" \
345 "\\^done,value=\"$hex\"" \
346 "assign to lpfloat"
347
348mi_gdb_test "-var-assign ldouble 5.333318284590435" \
349 "\\^done,value=\"5.333318284590435\"" \
350 "assign to ldouble"
351
352mi_gdb_test "-var-assign func do_block_tests" \
353 "\\^done,value=\"$hex <do_block_tests>\"" \
354 "assign to func"
355
356mi_gdb_test "-var-assign lsimple.character 'd'" \
357 "\\^done,value=\"100 'd'\"" \
358 "assign to lsimple.character"
359
360mi_gdb_test "-var-assign lsimple->integer 222" \
361 "\\^done,value=\"222\"" \
362 "assign to lsimple->integer"
363
364mi_gdb_test "-var-assign lsimple.integer 333" \
365 "\\^done,value=\"333\"" \
366 "assign to lsimple.integer"
367
368######
369# End of assign tests
370#####
371
469aff8e
MC
372set line_subroutine1_body [gdb_get_line_number "global_simple.integer = i + 3;"]
373
f7e97bb3 374mi_continue_to "subroutine1"
2fcf52f0
AC
375
376# Test: c_variable-2.10
377# Desc: create variable for locals i,l in subroutine1
9e8e3afe 378mi_create_varobj_checked i i int "create i"
2fcf52f0 379
9e8e3afe 380mi_create_varobj_checked l l {long int \*} "create l"
2fcf52f0
AC
381
382# Test: c_variable-2.11
383# Desc: create do_locals_tests local in subroutine1
384mi_gdb_test "-var-create linteger * linteger" \
a13e061a 385 "\\^error,msg=\"mi_cmd_var_create: unable to create variable object\"" \
2fcf52f0
AC
386 "create linteger"
387
388mi_step_to "subroutine1" "\{name=\"i\",value=\".*\"\},\{name=\"l\",value=\".*\"\}" \
469aff8e 389 "var-cmd.c" [expr $line_subroutine1_body + 1] "step at subroutine1"
2fcf52f0
AC
390
391# Test: c_variable-2.12
392# Desc: change global_simple.integer
393# Note: This also tests whether we are reporting changes in structs properly.
394# gdb normally would say that global_simple has changed, but we
395# special case that, since it is not what a human expects to
396# see.
397
398setup_xfail *-*-*
399mi_gdb_test "-var-update *" \
400 "\\^done,changelist=\{FIXME: WHAT IS CORRECT HERE\}" \
401 "update all vars: changed FIXME"
402clear_xfail *-*-*
403
404mi_step_to "subroutine1" "\{name=\"i\",value=\".*\"\},\{name=\"l\",value=\".*\"\}" \
469aff8e 405 "var-cmd.c" [expr $line_subroutine1_body + 2] "step at subroutine1 (2)"
2fcf52f0
AC
406
407# Test: c_variable-2.13
408# Desc: change subroutine1 local i
409mi_gdb_test "-var-update *" \
410 "\\^done,changelist=\\\[\{name=\"i\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
411 "update all vars: i changed"
412
413mi_step_to "subroutine1" "\{name=\"i\",value=\".*\"\},\{name=\"l\",value=\".*\"\}" \
469aff8e 414 "var-cmd.c" [expr $line_subroutine1_body + 3] "step at subroutine1 (3)"
2fcf52f0
AC
415
416# Test: c_variable-2.14
417# Desc: change do_locals_tests local llong
418mi_gdb_test "-var-update *" \
419 "\\^done,changelist=\\\[\{name=\"llong\",in_scope=\"true\",type_changed=\"false\"\}\\\]" \
420 "update all vars: llong changed"
421
469aff8e
MC
422set line_dlt_call_subroutine1 [gdb_get_line_number "subroutine1 (linteger, &llong);"]
423mi_next_to "do_locals_tests" "" "var-cmd.c" \
424 [expr $line_dlt_call_subroutine1 + 1] "next out of subroutine1"
2fcf52f0
AC
425
426# Test: c_variable-2.15
427# Desc: check for out of scope subroutine1 locals
428mi_gdb_test "-var-update *" \
f7f9ae2c 429 "\\^done,changelist=\\\[\{name=\"l\",in_scope=\"false\"\,type_changed=\"false\"},\{name=\"i\",in_scope=\"false\",type_changed=\"false\"\}\\\]" \
2fcf52f0
AC
430 "update all vars: all now out of scope"
431
432# Done with locals/globals tests. Erase all variables
433#delete_all_variables
434mi_gdb_test "-var-delete global_simple" \
435 "\\^done,ndeleted=\"1\"" \
436 "delete var"
437
438mi_gdb_test "-var-delete linteger" \
439 "\\^done,ndeleted=\"1\"" \
440 "delete var linteger"
441
442mi_gdb_test "-var-delete lpinteger" \
443 "\\^done,ndeleted=\"1\"" \
444 "delete var lpinteger"
445
446mi_gdb_test "-var-delete lcharacter" \
447 "\\^done,ndeleted=\"1\"" \
448 "delete var lcharacter"
449
450mi_gdb_test "-var-delete lpcharacter" \
451 "\\^done,ndeleted=\"1\"" \
452 "delete var lpcharacter"
453
454mi_gdb_test "-var-delete llong" \
455 "\\^done,ndeleted=\"1\"" \
456 "delete var llong"
457
458mi_gdb_test "-var-delete lplong" \
459 "\\^done,ndeleted=\"1\"" \
460 "delete var lplong"
461
462mi_gdb_test "-var-delete lfloat" \
463 "\\^done,ndeleted=\"1\"" \
464 "delete var lfloat"
465
466mi_gdb_test "-var-delete lpfloat" \
467 "\\^done,ndeleted=\"1\"" \
468 "delete var lpfloat"
469
470mi_gdb_test "-var-delete ldouble" \
471 "\\^done,ndeleted=\"1\"" \
472 "delete var ldouble"
473
474mi_gdb_test "-var-delete lpdouble" \
475 "\\^done,ndeleted=\"1\"" \
476 "delete var lpdouble"
477
478mi_gdb_test "-var-delete lsimple" \
479 "\\^done,ndeleted=\"1\"" \
480 "delete var lsimple"
481
482mi_gdb_test "-var-delete lpsimple" \
483 "\\^done,ndeleted=\"1\"" \
484 "delete var lpsimple"
485
486mi_gdb_test "-var-delete func" \
487 "\\^done,ndeleted=\"1\"" \
488 "delete var func"
489
490mi_gdb_test "-var-delete lsimple.character" \
491 "\\^done,ndeleted=\"1\"" \
492 "delete var lsimple.character"
493
494mi_gdb_test "-var-delete lsimple->integer" \
495 "\\^done,ndeleted=\"1\"" \
496 "delete var lsimple->integer"
497
498mi_gdb_test "-var-delete lsimple.integer" \
499 "\\^done,ndeleted=\"1\"" \
500 "delete var lsimple.integer"
501
502mi_gdb_test "-var-delete i" \
503 "\\^done,ndeleted=\"1\"" \
504 "delete var i"
505
506mi_gdb_test "-var-delete l" \
507 "\\^done,ndeleted=\"1\"" \
508 "delete var l"
509
510# Test whether we can follow the name of a variable through multiple
511# stack frames.
f7e97bb3 512mi_continue_to do_special_tests
2fcf52f0
AC
513
514mi_gdb_test "-var-create selected_a @ a" \
9e8e3afe 515 {\^done,name="selected_a",numchild="0",value=".*",type="int".*} \
2fcf52f0
AC
516 "create selected_a"
517
f7e97bb3 518mi_continue_to incr_a
2fcf52f0
AC
519
520mi_gdb_test "-var-update selected_a" \
fcacd99f 521 "\\^done,changelist=\\\[\{name=\"selected_a\",in_scope=\"true\",type_changed=\"true\",new_type=\"char\",new_num_children=\"0\"\}\\\]" \
2fcf52f0
AC
522 "update selected_a in incr_a"
523
524mi_next "step a line in incr_a"
525mi_next "return from incr_a to do_special_tests"
526
527mi_gdb_test "-var-update selected_a" \
fcacd99f 528 "\\^done,changelist=\\\[\{name=\"selected_a\",in_scope=\"true\",type_changed=\"true\",new_type=\"int\",new_num_children=\"0\"\}\\\]" \
2fcf52f0
AC
529 "update selected_a in do_special_tests"
530
187c4a2b
JK
531mi_gdb_test "-file-exec-and-symbols ${binfile}" "\\^done" \
532 "floating varobj invalidation"
533
534
2fcf52f0
AC
535mi_gdb_exit
536return 0
This page took 0.586288 seconds and 4 git commands to generate.