Change argument to istarget from "*-*-vxworks" to "*-*-vxworks*".
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / scope.exp
1 # Copyright (C) 1992, 1994 Free Software Foundation, Inc.
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., 675 Mass Ave, Cambridge, MA 02139, USA. */
16
17 # Please email any bugs, comments, and/or additions to this file to:
18 # bug-gdb@prep.ai.mit.edu
19
20 # This file was written by Fred Fish. (fnf@cygnus.com)
21
22 if $tracelevel then {
23 strace $tracelevel
24 }
25
26 set prms_id 0
27 set bug_id 0
28
29 set binfile "scope"
30 set srcfile $binfile.c
31
32 if ![file exists $objdir/$subdir/$binfile] then {
33 perror "$objdir/$subdir/$binfile does not exist."
34 return 0
35 }
36
37 # Test locating various things when stopped just inside main, after
38 # running init(). To prevent cascading of errors, we report the
39 # first one and quit. If all pass, then we print the pass results.
40
41 proc test_at_main {} {
42 global prompt
43 global decimal
44 global det_file
45 global srcdir
46 global subdir
47
48 # skip past init. There may be a call to __main at the start of
49 # main, so the first next may only get us to the init call.
50 send "next\n"
51 expect {
52 -re "$decimal.*foo \[)(\]+;\r\n$prompt $" {
53 pass "next over init() in main"
54 }
55 -re "$decimal.*init \[)(\]+;\r\n$prompt $"\
56 { send "next\n" ; exp_continue }
57 -re "$prompt $" { fail "next over init() in main" ; return }
58 timeout { fail "(timeout) next over init() in main" ; return }
59 }
60
61 # Print scope0.c::filelocal, which is 1
62
63 send "print filelocal\n"
64 expect {
65 -re "\\\$$decimal = 1\r\n$prompt $" { pass "print filelocal" }
66 -re "$prompt $" { fail "print filelocal" ; return }
67 timeout {
68 fail "(timeout) print filelocal" ; return
69 }
70 }
71
72 # The RS/6000 does not seem to be handle print 'file'::var.
73 setup_xfail "rs6000-*-*"
74 send "print 'scope0.c'::filelocal\n"
75 expect {
76 -re "\\\$$decimal = 1\r\n$prompt $" {
77 pass "print 'scope0.c'::filelocal at main"
78 }
79 -re "No symbol \"scope0.c\" in current context.*$prompt $" {
80 send "print '$srcdir/$subdir/scope0.c'::filelocal\n"
81 exp_continue
82 }
83 -re "$prompt $" { fail "print 'scope0.c'::filelocal at main" ; return }
84 timeout {
85 fail "(timeout) print 'scope0.c'::filelocal at main" ; return
86 }
87 }
88
89 # Print scope0.c::filelocal_bss, which is 101
90
91 send "print filelocal_bss\n"
92 expect {
93 -re "\\\$$decimal = 101\r\n$prompt $" {
94 pass "print filelocal_bss"
95 }
96 -re "$prompt $" { fail "print filelocal_bss" ; return }
97 timeout {
98 fail "(timeout) print filelocal_bss" ; return
99 }
100 }
101
102 setup_xfail "rs6000-*-*"
103 send "print 'scope0.c'::filelocal_bss\n"
104 expect {
105 -re "\\\$$decimal = 101\r\n$prompt $" {
106 pass "print 'scope0.c'::filelocal_bss"
107 }
108 -re "No symbol \"scope0.c\" in current context.*$prompt $" {
109 send "print '$srcdir/$subdir/scope0.c'::filelocal_bss\n"
110 exp_continue
111 }
112 -re "$prompt $" { fail "print 'scope0.c'::filelocal_bss" ; return }
113 timeout {
114 fail "(timeout) print 'scope0.c'::filelocal_bss" ; return
115 }
116 }
117
118 # Print scope0.c::filelocal_ro, which is 201
119
120 send "print filelocal_ro\n"
121 expect {
122 -re "\\\$$decimal = 201\r\n$prompt $" { pass "print filelocal_ro" }
123 -re "$prompt $" { fail "print filelocal_ro" ; return }
124 timeout {
125 fail "(timeout) print filelocal_ro" ; return
126 }
127 }
128
129 setup_xfail "rs6000-*-*"
130 send "print 'scope0.c'::filelocal_ro\n"
131 expect {
132 -re "\\\$$decimal = 201\r\n$prompt $" {
133 pass "print 'scope0.c'::filelocal_ro"
134 }
135 -re "No symbol \"scope0.c\" in current context.*$prompt $" {
136 send "print '$srcdir/$subdir/scope0.c'::filelocal_ro\n"
137 exp_continue
138 }
139 -re "$prompt $" { fail "print 'scope0.c'::filelocal_ro" ; return }
140 timeout {
141 fail "(timeout) print 'scope0.c'::filelocal_ro" ; return
142 }
143 }
144
145 # Print scope1.c::filelocal, which is 2
146
147 setup_xfail "rs6000-*-*"
148 send "print 'scope1.c'::filelocal\n"
149 expect {
150 -re "\\\$$decimal = 2\r\n$prompt $" {
151 pass "print 'scope1.c'::filelocal"
152 }
153 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
154 send "print '$srcdir/$subdir/scope1.c'::filelocal\n"
155 exp_continue
156 }
157 -re "$prompt $" { fail "print 'scope1.c'::filelocal" ; return }
158 timeout {
159 fail "(timeout) print 'scope1.c'::filelocal" ; return
160 }
161 }
162
163 # Print scope1.c::filelocal_bss, which is 102
164
165 setup_xfail "rs6000-*-*"
166 send "print 'scope1.c'::filelocal_bss\n"
167 expect {
168 -re "\\\$$decimal = 102\r\n$prompt $" {
169 pass "print 'scope1.c'::filelocal_bss"
170 }
171 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
172 send "print '$srcdir/$subdir/scope1.c'::filelocal_bss\n"
173 exp_continue
174 }
175 -re "$prompt $" { fail "print 'scope1.c'::filelocal_bss" ; return }
176 timeout {
177 fail "(timeout) print 'scope1.c'::filelocal_bss" ; return
178 }
179 }
180
181 # Print scope1.c::filelocal_ro, which is 202
182
183 setup_xfail "rs6000-*-*"
184 send "print 'scope1.c'::filelocal_ro\n"
185 expect {
186 -re "\\\$$decimal = 202\r\n$prompt $" {
187 pass "print 'scope1.c'::filelocal_ro"
188 }
189 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
190 send "print '$srcdir/$subdir/scope1.c'::filelocal_ro\n"
191 exp_continue
192 }
193 -re "$prompt " {fail "print 'scope1.c'::filelocal_ro" ; return }
194 timeout {
195 fail "(timeout) print 'scope1.c'::filelocal_ro" ; return
196 }
197 }
198
199 # Print scope1.c::foo::funclocal, which is 3
200
201 send "print foo::funclocal\n"
202 expect {
203 -re "\\\$$decimal = 3\r\n$prompt $" { pass "print foo::funclocal" }
204 -re "$prompt $" { fail "print foo::funclocal" ; return }
205 timeout {
206 fail "(timeout) print foo::funclocal" ; return
207 }
208 }
209
210 setup_xfail "rs6000-*-*"
211 send "print 'scope1.c'::foo::funclocal\n"
212 expect {
213 -re "\\\$$decimal = 3\r\n$prompt $" {
214 pass "print 'scope1.c'::foo::funclocal"
215 }
216 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
217 send "print '$srcdir/$subdir/scope1.c'::foo::funclocal\n"
218 exp_continue
219 }
220 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal" ; return }
221 timeout {
222 fail "(timeout) print 'scope1.c'::foo::funclocal" ; return
223 }
224 }
225
226 # Print scope1.c::foo::funclocal_ro, which is 203
227
228 send "print foo::funclocal_ro\n"
229 expect {
230 -re "\\\$$decimal = 203\r\n$prompt $" {
231 pass "print foo::funclocal_ro"
232 }
233 -re "$prompt $" { fail "print foo::funclocal_ro" ; return }
234 timeout {
235 fail "(timeout) print foo::funclocal_ro" ; return
236 }
237 }
238
239 setup_xfail "rs6000-*-*"
240 send "print 'scope1.c'::foo::funclocal_ro\n"
241 expect {
242 -re "\\\$$decimal = 203\r\n$prompt $" {
243 pass "print 'scope1.c'::foo::funclocal_ro" }
244 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
245 send "print '$srcdir/$subdir/scope1.c'::foo::funclocal_ro\n"
246 exp_continue
247 }
248 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal_ro" ; return }
249 timeout {
250 fail "(timeout) print 'scope1.c'::foo::funclocal_ro" ; return
251 }
252 }
253
254 # Print scope1.c::bar::funclocal, which is 4
255
256 send "print bar::funclocal\n"
257 expect {
258 -re "\\\$$decimal = 4\r\n$prompt $" { pass "print bar::funclocal" }
259 -re "$prompt $" { fail "print bar::funclocal" ; return }
260 timeout {
261 fail "(timeout) print bar::funclocal" ; return
262 }
263 }
264
265 setup_xfail "rs6000-*-*"
266 send "print 'scope1.c'::bar::funclocal\n"
267 expect {
268 -re "\\\$$decimal = 4\r\n$prompt $" {
269 pass "print 'scope1.c'::bar::funclocal"
270 }
271 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
272 send "print '$srcdir/$subdir/scope1.c'::bar::funclocal\n"
273 exp_continue
274 }
275 -re "$prompt $" { fail "print 'scope1.c'::bar::funclocal" ; return }
276 timeout {
277 fail "print 'scope1.c'::bar::funclocal" ; return
278 }
279 }
280 }
281
282 proc test_at_foo {} {
283 global prompt
284 global decimal
285 global det_file
286 global srcdir
287 global subdir
288
289 send "next\n"
290 expect {
291 -re ".*bar \[)(\]+;\r\n$prompt $" {}
292 -re "$prompt $" { fail "continue to foo()" ; return }
293 timeout { fail "(timeout) continue to foo()" ; return }
294 }
295
296 # Print scope0.c::filelocal, which is 1
297
298 setup_xfail "rs6000-*-*"
299 send "print 'scope0.c'::filelocal\n"
300 expect {
301 -re "\\\$$decimal = 1\r\n$prompt $" {
302 pass "print 'scope0.c'::filelocal at foo"
303 }
304 -re "No symbol \"scope0.c\" in current context.*$prompt $" {
305 send "print '$srcdir/$subdir/scope0.c'::filelocal\n"
306 exp_continue
307 }
308 -re "$prompt $" { fail "print 'scope0.c'::filelocal at foo" ; return }
309 timeout {
310 fail "(timeout) print 'scope0.c'::filelocal at foo" ; return
311 }
312 }
313
314 # Print scope0.c::filelocal_bss, which is 101
315
316 setup_xfail "rs6000-*-*"
317 send "print 'scope0.c'::filelocal_bss\n"
318 expect {
319 -re "\\\$$decimal = 101\r\n$prompt $" { pass "print 'scope0.c'::filelocal_bss" }
320 -re "No symbol \"scope0.c\" in current context.*$prompt $" {
321 send "print '$srcdir/$subdir/scope0.c'::filelocal_bss\n"
322 exp_continue
323 }
324 -re "$prompt $" { fail "print 'scope0.c'::filelocal_bss" ; return }
325 timeout {
326 fail "(timeout) print 'scope0.c'::filelocal_bss" ; return
327 }
328 }
329
330 # Print scope0.c::filelocal_ro, which is 201
331
332 setup_xfail "rs6000-*-*"
333 send "print 'scope0.c'::filelocal_ro\n"
334 expect {
335 -re "\\\$$decimal = 201\r\n$prompt $" { pass "print 'scope0.c'::filelocal_ro" }
336 -re "No symbol \"scope0.c\" in current context.*$prompt $" {
337 send "print '$srcdir/$subdir/scope0.c'::filelocal_ro\n"
338 exp_continue
339 }
340 -re "$prompt $" { fail "print 'scope0.c'::filelocal_ro" ; return }
341 timeout {
342 fail "(timeout) print 'scope0.c'::filelocal_ro" ; return
343 }
344 }
345
346 # Print scope1.c::filelocal, which is 2
347
348 send "print filelocal\n"
349 expect {
350 -re "\\\$$decimal = 2\r\n$prompt $" { pass "print filelocal" }
351 -re "$prompt $" { fail "print filelocal" ; return }
352 timeout {
353 fail "(timeout) print filelocal" ; return
354 }
355 }
356
357 setup_xfail "rs6000-*-*"
358 send "print 'scope1.c'::filelocal\n"
359 expect {
360 -re "\\\$$decimal = 2\r\n$prompt $" { pass "print 'scope1.c'::filelocal" }
361 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
362 send "print '$srcdir/$subdir/scope1.c'::filelocal\n"
363 exp_continue
364 }
365 -re "$prompt $" { fail "print 'scope1.c'::filelocal" ; return }
366 timeout {
367 fail "(timeout) print 'scope1.c'::filelocal" ; return
368 }
369 }
370
371 # Print scope1.c::filelocal_bss, which is 102
372
373 send "print filelocal_bss\n"
374 expect {
375 -re "\\\$$decimal = 102\r\n$prompt $" { pass "print filelocal_bss" }
376 -re "$prompt $" { fail "print filelocal_bss" ; return }
377 timeout {
378 fail "(timeout) print filelocal_bss" ; return
379 }
380 }
381
382 setup_xfail "rs6000-*-*"
383 send "print 'scope1.c'::filelocal_bss\n"
384 expect {
385 -re "\\\$$decimal = 102\r\n$prompt $" { pass "print 'scope1.c'::filelocal_bss" }
386 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
387 send "print '$srcdir/$subdir/scope1.c'::filelocal_bss\n"
388 exp_continue
389 }
390 -re "$prompt $" { fail "print 'scope1.c'::filelocal_bss" ; return }
391 timeout {
392 fail "(timeout) print 'scope1.c'::filelocal_bss" ; return
393 }
394 }
395
396 # Print scope1.c::filelocal_ro, which is 202
397
398 send "print filelocal_ro\n"
399 expect {
400 -re "\\\$$decimal = 202\r\n$prompt $" { pass "print filelocal_ro" }
401 -re "$prompt $" { fail "print filelocal_ro" ; return }
402 timeout {
403 fail "(timeout) print filelocal_ro" ; return
404 }
405 }
406
407 setup_xfail "rs6000-*-*"
408 send "print 'scope1.c'::filelocal_ro\n"
409 expect {
410 -re "\\\$$decimal = 202\r\n$prompt $" { pass "print 'scope1.c'::filelocal_ro" }
411 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
412 send "print '$srcdir/$subdir/scope1.c'::filelocal_ro\n"
413 exp_continue
414 }
415 -re "$prompt $" { fail "print 'scope1.c'::filelocal_ro" ; return }
416 timeout {
417 fail "(timeout) print 'scope1.c'::filelocal_ro" ; return
418 }
419 }
420
421 # Print scope1.c::foo::funclocal, which is 3
422
423 send "print funclocal\n"
424 expect {
425 -re "\\\$$decimal = 3\r\n$prompt $" { pass "print funclocal" }
426 -re "$prompt $" { fail "print funclocal" ; return }
427 timeout {
428 fail "(timeout) print funclocal" ; return
429 }
430 }
431
432 send "print foo::funclocal\n"
433 expect {
434 -re "\\\$$decimal = 3\r\n$prompt $" { pass "print foo::funclocal" }
435 -re "$prompt $" { fail "print foo::funclocal" ; return }
436 timeout {
437 fail "(timeout) print foo::funclocal" ; return
438 }
439 }
440
441 setup_xfail "rs6000-*-*"
442 send "print 'scope1.c'::foo::funclocal\n"
443 expect {
444 -re "\\\$$decimal = 3\r\n$prompt $" { pass "print 'scope1.c'::foo::funclocal" }
445 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
446 send "print '$srcdir/$subdir/scope1.c'::foo::funclocal\n"
447 exp_continue
448 }
449 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal" ; return }
450 timeout {
451 fail "(timeout) print 'scope1.c'::foo::funclocal" ; return
452 }
453 }
454
455 # Print scope1.c::foo::funclocal_bss, which is 103
456
457 send "print funclocal_bss\n"
458 expect {
459 -re "\\\$$decimal = 103\r\n$prompt $" { pass "print funclocal_bss" }
460 -re "$prompt $" { fail "print funclocal_bss" ; return }
461 timeout {
462 fail "(timeout) print funclocal_bss" ; return
463 }
464 }
465
466 send "print foo::funclocal_bss\n"
467 expect {
468 -re "\\\$$decimal = 103\r\n$prompt $" { pass "print foo::funclocal_bss" }
469 -re "$prompt $" { fail "print foo::funclocal_bss" ; return }
470 timeout {
471 fail "(timeout) print foo::funclocal_bss" ; return
472 }
473 }
474
475 setup_xfail "rs6000-*-*"
476 send "print 'scope1.c'::foo::funclocal_bss\n"
477 expect {
478 -re "\\\$$decimal = 103\r\n$prompt $" { pass "print 'scope1.c'::foo::funclocal_bss" }
479 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
480 send "print '$srcdir/$subdir/scope1.c'::foo::funclocal_bss\n"
481 exp_continue
482 }
483 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal_bss" ; return }
484 timeout {
485 fail "(timeout) print 'scope1.c'::foo::funclocal_bss" ; return
486 }
487 }
488
489 # Print scope1.c::foo::funclocal_ro, which is 203
490
491 send "print funclocal_ro\n"
492 expect {
493 -re "\\\$$decimal = 203\r\n$prompt $" { pass "print funclocal_ro" }
494 -re "$prompt $" { fail "print funclocal_ro" ; return }
495 timeout {
496 fail "(timeout) print funclocal_ro" ; return
497 }
498 }
499
500 send "print foo::funclocal_ro\n"
501 expect {
502 -re "\\\$$decimal = 203\r\n$prompt $" { pass "print foo::funclocal_ro" }
503 -re "$prompt $" { fail "print foo::funclocal_ro" ; return }
504 timeout {
505 fail "(timeout) print foo::funclocal_ro" ; return
506 }
507 }
508
509 setup_xfail "rs6000-*-*"
510 send "print 'scope1.c'::foo::funclocal_ro\n"
511 expect {
512 -re "\\\$$decimal = 203\r\n$prompt $" { pass "print 'scope1.c'::foo::funclocal_ro" }
513 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
514 send "print '$srcdir/$subdir/scope1.c'::foo::funclocal_ro\n"
515 exp_continue
516 }
517 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal_ro" ; return }
518 timeout {
519 fail "(timeout) print 'scope1.c'::foo::funclocal_ro" ; return
520 }
521 }
522
523 # Print scope1.c::bar::funclocal, which is 4
524
525 send "print bar::funclocal\n"
526 expect {
527 -re "\\\$$decimal = 4\r\n$prompt $" { pass "print bar::funclocal" }
528 -re "$prompt $" { fail "print bar::funclocal" ; return }
529 timeout {
530 fail "(timeout) print bar::funclocal" ; return
531 }
532 }
533
534 setup_xfail "rs6000-*-*"
535 send "print 'scope1.c'::bar::funclocal\n"
536 expect {
537 -re "\\\$$decimal = 4\r\n$prompt $" { pass "print 'scope1.c'::bar::funclocal" }
538 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
539 send "print '$srcdir/$subdir/scope1.c'::bar::funclocal\n"
540 exp_continue
541 }
542 -re "$prompt $" { fail "print 'scope1.c'::bar::funclocal" ; return }
543 timeout {
544 fail "(timeout) print 'scope1.c'::bar::funclocal" ; return
545 }
546 }
547 }
548
549 proc test_at_bar {} {
550 global prompt
551 global decimal
552 global det_file
553 global srcdir
554 global subdir
555
556 send "next\n"
557 expect {
558 -re ".*$prompt $" {}
559 timeout { fail "next in bar()" ; return }
560 }
561
562 # Print scope0.c::filelocal, which is 1
563
564 setup_xfail "rs6000-*-*"
565 send "print 'scope0.c'::filelocal\n"
566 expect {
567 -re "\\\$$decimal = 1\r\n$prompt $" {
568 pass "print 'scope0.c'::filelocal at bar"
569 }
570 -re "No symbol \"scope0.c\" in current context.*$prompt $" {
571 send "print '$srcdir/$subdir/scope0.c'::filelocal\n"
572 exp_continue
573 }
574 -re "$prompt $" { fail "print 'scope0.c'::filelocal at bar" ; return }
575 timeout {
576 fail "(timeout) print 'scope0.c'::filelocal at bar" ; return
577 }
578 }
579
580 # Print scope0.c::filelocal_bss, which is 101
581
582 setup_xfail "rs6000-*-*"
583 send "print 'scope0.c'::filelocal_bss\n"
584 expect {
585 -re "\\\$$decimal = 101\r\n$prompt $" { pass "print 'scope0.c'::filelocal_bss" }
586 -re "No symbol \"scope0.c\" in current context.*$prompt $" {
587 send "print '$srcdir/$subdir/scope0.c'::filelocal_bss\n"
588 exp_continue
589 }
590 -re "$prompt $" { fail "print 'scope0.c'::filelocal_bss" ; return }
591 timeout {
592 fail "(timeout) print 'scope0.c'::filelocal_bss" ; return
593 }
594 }
595
596 # Print scope0.c::filelocal_ro, which is 201
597
598 setup_xfail "rs6000-*-*"
599 send "print 'scope0.c'::filelocal_ro\n"
600 expect {
601 -re "\\\$$decimal = 201\r\n$prompt $" { pass "print 'scope0.c'::filelocal_ro" }
602 -re "No symbol \"scope0.c\" in current context.*$prompt $" {
603 send "print '$srcdir/$subdir/scope0.c'::filelocal_ro\n"
604 exp_continue
605 }
606 -re "$prompt $" { fail "print 'scope0.c'::filelocal_ro" ; return }
607 timeout {
608 fail "(timeout) print 'scope0.c'::filelocal_ro" ; return
609 }
610 }
611
612 # Print scope1.c::filelocal, which is 2
613
614 send "print filelocal\n"
615 expect {
616 -re "\\\$$decimal = 2\r\n$prompt $" { pass "print filelocal" }
617 -re "$prompt $" { fail "print filelocal" ; return }
618 timeout {
619 fail "(timeout) print filelocal" ; return
620 }
621 }
622
623 setup_xfail "rs6000-*-*"
624 send "print 'scope1.c'::filelocal\n"
625 expect {
626 -re "\\\$$decimal = 2\r\n$prompt $" { pass "print 'scope1.c'::filelocal" }
627 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
628 send "print '$srcdir/$subdir/scope1.c'::filelocal\n"
629 exp_continue
630 }
631 -re "$prompt $" { fail "print 'scope1.c'::filelocal" ; return }
632 timeout {
633 fail "(timeout) print 'scope1.c'::filelocal" ; return
634 }
635 }
636
637 # Print scope1.c::filelocal_bss, which is 102
638
639 send "print filelocal_bss\n"
640 expect {
641 -re "\\\$$decimal = 102\r\n$prompt $" { pass "print filelocal_bss" }
642 -re "$prompt $" { fail "print filelocal_bss" ; return }
643 timeout {
644 fail "(timeout) print filelocal_bss" ; return
645 }
646 }
647
648 setup_xfail "rs6000-*-*"
649 send "print 'scope1.c'::filelocal_bss\n"
650 expect {
651 -re "\\\$$decimal = 102\r\n$prompt $" { pass "print 'scope1.c'::filelocal_bss" }
652 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
653 send "print '$srcdir/$subdir/scope1.c'::filelocal_bss\n"
654 exp_continue
655 }
656 -re "$prompt $" { fail "print 'scope1.c'::filelocal_bss" ; return }
657 timeout {
658 fail "(timeout) print 'scope1.c'::filelocal_bss" ; return
659 }
660 }
661
662 # Print scope1.c::filelocal_ro, which is 202
663
664 send "print filelocal_ro\n"
665 expect {
666 -re "\\\$$decimal = 202\r\n$prompt $" { pass "print filelocal_ro" }
667 -re "$prompt $" { fail "print filelocal_ro" ; return }
668 timeout {
669 fail "(timeout) print filelocal_ro" ; return
670 }
671 }
672
673 setup_xfail "rs6000-*-*"
674 send "print 'scope1.c'::filelocal_ro\n"
675 expect {
676 -re "\\\$$decimal = 202\r\n$prompt $" { pass "print 'scope1.c'::filelocal_ro" }
677 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
678 send "print '$srcdir/$subdir/scope1.c'::filelocal_ro\n"
679 exp_continue
680 }
681 -re "$prompt $" { fail "print 'scope1.c'::filelocal_ro" ; return }
682 timeout {
683 fail "(timeout) print 'scope1.c'::filelocal_ro" ; return
684 }
685 }
686
687 # Print scope1.c::foo::funclocal, which is 3
688
689 send "print foo::funclocal\n"
690 expect {
691 -re "\\\$$decimal = 3\r\n$prompt $" { pass "print foo::funclocal" }
692 -re "$prompt $" { fail "print foo::funclocal" ; return }
693 timeout {
694 fail "(timeout) print foo::funclocal" ; return
695 }
696 }
697
698 setup_xfail "rs6000-*-*"
699 send "print 'scope1.c'::foo::funclocal\n"
700 expect {
701 -re "\\\$$decimal = 3\r\n$prompt $" { pass "print 'scope1.c'::foo::funclocal" }
702 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
703 send "print '$srcdir/$subdir/scope1.c'::foo::funclocal\n"
704 exp_continue
705 }
706 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal" ; return }
707 timeout {
708 fail "(timeout) print 'scope1.c'::foo::funclocal" ; return
709 }
710 }
711
712 # Print scope1.c::foo::funclocal_bss, which is 103
713
714 send "print foo::funclocal_bss\n"
715 expect {
716 -re "\\\$$decimal = 103\r\n$prompt $" { pass "print foo::funclocal_bss" }
717 -re "$prompt $" { fail "print foo::funclocal_bss" ; return }
718 timeout {
719 fail "(timeout) print foo::funclocal_bss" ; return
720 }
721 }
722
723 setup_xfail "rs6000-*-*"
724 send "print 'scope1.c'::foo::funclocal_bss\n"
725 expect {
726 -re "\\\$$decimal = 103\r\n$prompt $" { pass "print 'scope1.c'::foo::funclocal_bss" }
727 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
728 send "print '$srcdir/$subdir/scope1.c'::foo::funclocal_bss\n"
729 exp_continue
730 }
731 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal_bss" ; return }
732 timeout {
733 fail "(timeout) print 'scope1.c'::foo::funclocal_bss" ; return
734 }
735 }
736
737 # Print scope1.c::foo::funclocal_ro, which is 203
738
739 send "print foo::funclocal_ro\n"
740 expect {
741 -re "\\\$$decimal = 203\r\n$prompt $" { pass "print foo::funclocal_ro" }
742 -re "$prompt $" { fail "print foo::funclocal_ro" ; return }
743 timeout {
744 fail "(timeout) print foo::funclocal_ro" ; return
745 }
746 }
747
748 setup_xfail "rs6000-*-*"
749 send "print 'scope1.c'::foo::funclocal_ro\n"
750 expect {
751 -re "\\\$$decimal = 203\r\n$prompt $" { pass "print 'scope1.c'::foo::funclocal_ro" }
752 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
753 send "print '$srcdir/$subdir/scope1.c'::foo::funclocal_ro\n"
754 exp_continue
755 }
756 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal_ro" ; return }
757 timeout {
758 fail "(timeout) print 'scope1.c'::foo::funclocal_ro" ; return
759 }
760 }
761
762 # Print scope1.c::bar::funclocal, which is 4
763
764 send "print funclocal\n"
765 expect {
766 -re "\\\$$decimal = 4\r\n$prompt $" { pass "print funclocal" }
767 -re "$prompt $" { fail "print funclocal" ; return }
768 timeout {
769 fail "(timeout) print funclocal" ; return
770 }
771 }
772
773 send "print bar::funclocal\n"
774 expect {
775 -re "\\\$$decimal = 4\r\n$prompt $" { pass "print bar::funclocal" }
776 -re "$prompt $" { fail "print bar::funclocal" ; return }
777 timeout {
778 fail "(timeout) print bar::funclocal" ; return
779 }
780 }
781
782 setup_xfail "rs6000-*-*"
783 send "print 'scope1.c'::bar::funclocal\n"
784 expect {
785 -re "\\\$$decimal = 4\r\n$prompt $" { pass "print 'scope1.c'::bar::funclocal" }
786 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
787 send "print '$srcdir/$subdir/scope1.c'::bar::funclocal\n"
788 exp_continue
789 }
790 -re "$prompt $" { fail "print 'scope1.c'::bar::funclocal" ; return }
791 timeout {
792 fail "(timeout) print 'scope1.c'::bar::funclocal" ; return
793 }
794 }
795
796 # Print scope1.c::bar::funclocal_bss, which is 104
797
798 send "print funclocal_bss\n"
799 expect {
800 -re "\\\$$decimal = 104\r\n$prompt $" { pass "print funclocal_bss" }
801 -re "$prompt $" { fail "print funclocal_bss" ; return }
802 timeout {
803 fail "(timeout) print funclocal_bss" ; return
804 }
805 }
806
807 send "print bar::funclocal_bss\n"
808 expect {
809 -re "\\\$$decimal = 104\r\n$prompt $" { pass "print bar::funclocal_bss" }
810 -re "$prompt $" { fail "print bar::funclocal_bss" ; return }
811 timeout {
812 fail "(timeout) print bar::funclocal_bss" ; return
813 }
814 }
815
816 setup_xfail "rs6000-*-*"
817 send "print 'scope1.c'::bar::funclocal_bss\n"
818 expect {
819 -re "\\\$$decimal = 104\r\n$prompt $" { pass "print 'scope1.c'::bar::funclocal_bss" }
820 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
821 send "print '$srcdir/$subdir/scope1.c'::bar::funclocal_bss\n"
822 exp_continue
823 }
824 -re "$prompt $" { fail "print 'scope1.c'::bar::funclocal_bss" ; return }
825 timeout {
826 fail "(timeout) print 'scope1.c'::bar::funclocal_bss" ; return
827 }
828 }
829 }
830
831 # FIXME: This test was originally part of some local scope resolution
832 # tests. It probably belongs somewhere else now.
833
834 proc test_at_autovars {} {
835 global prompt
836 global decimal
837 global hex
838 global srcfile
839
840 # Test symbol table lookup with 100 local (auto) variables.
841
842 send "break marker1\n" ; expect -re ".*$prompt $"
843
844 send "cont\n"
845 expect {
846 -re "Break.* marker1 \[)(\]+ at .*:$decimal.*$prompt $" {
847 send "up\n"
848 expect {
849 -re ".*$prompt $" {}
850 timeout { fail "up from marker1" ; return }
851 }
852 }
853 -re "$prompt $" { fail "continue to marker1" ; return }
854 timeout { fail "(timeout) continue to marker1" ; return }
855 }
856
857 set count 0
858 while {$count < 100} {
859 send "print i$count\n"
860 expect {
861 -re ".* = $count\r\n$prompt $" {}
862 -re "$prompt $" {
863 fail "bad value for auto variable i$count"; return
864 }
865 timeout {
866 fail "(timeout) bad value for auto variable i$count"; return
867 }
868 }
869 set count [expr $count+1]
870 }
871 clear_xfail "*-*-*"
872 pass "$count auto variables correctly initialized"
873
874 # Test that block variable sorting is not screwing us.
875 gdb_test "frame" "#.*autovars \\(bcd=5, abc=6\\).*" "args in correct order"
876 }
877
878 proc test_at_localscopes {} {
879 global prompt
880 global decimal
881 global hex
882 global srcfile
883
884 send "break marker2\n" ; expect -re ".*$prompt $"
885 send "break marker3\n" ; expect -re ".*$prompt $"
886 send "break marker4\n" ; expect -re ".*$prompt $"
887
888 send "cont\n"
889 expect {
890 -re "Break.* marker2 \[)(\]+ at .*:$decimal.*$prompt $" {
891 send "up\n"
892 expect {
893 -re ".*$prompt $" {}
894 timeout { fail "up from marker2" ; return }
895 }
896 }
897 -re "$prompt $" { fail "continue to marker2" ; return }
898 timeout { fail "(timeout) continue to marker2" ; return }
899 }
900
901 # Should be at first (outermost) scope. Check values.
902
903 send "print localval\n"
904 expect {
905 -re ".* = 10\r\n$prompt $" { pass "bad value for localval, outer scope" }
906 -re "$prompt $" { fail "bad value for localval, outer scope" ; return }
907 default {
908 fail "(timeout) bad value for localval, outer scope" ; return
909 }
910 }
911 send "print localval1\n"
912 expect {
913 -re ".* = 11\r\n$prompt $" { pass "bad value for localval1" }
914 -re "$prompt $" { fail "bad value for localval1" ; return }
915 timeout { fail "(timeout) bad value for localval1" ; return }
916 }
917 send "print localval2\n"
918 expect {
919 -re "No symbol \"localval2\" in current context.\r\n$prompt $" {
920 pass "bad value for localval2"
921 }
922 -re "$prompt $" { fail "bad value for localval2" ; return }
923 timeout { fail "(timeout) bad value for localval2" ; return }
924 }
925 send "print localval3\n"
926 expect {
927 -re "No symbol \"localval3\" in current context.\r\n$prompt $" {
928 pass "bad value for localval3"
929 }
930 -re "$prompt $" { fail "bad value for localval3" ; return }
931 timeout { fail "(timeout) bad value for localval3" ; return }
932 }
933
934 send "cont\n"
935 expect {
936 -re "Break.* marker3 \[)(\]+ at .*:$decimal.*$prompt $" {
937 send "up\n"
938 expect {
939 -re ".*$prompt $" {}
940 timeout { fail "up from marker3" ; return }
941 }
942 }
943 -re "$prompt $" { fail "continue to marker3" ; return }
944 timeout { fail "(timeout) continue to marker3" ; return }
945 }
946
947 # Should be at next (first nested) scope. Check values.
948
949 send "print localval\n"
950 expect {
951 -re ".* = 20\r\n$prompt $" { pass "bad value for localval, first nested scope" }
952 -re "$prompt $" {
953 fail "bad value for localval, first nested scope" ; return
954 }
955 timeout {
956 fail "(timeout) bad value for localval, first nested scope" ;
957 return
958 }
959 }
960 send "print localval1\n"
961 expect {
962 -re ".* = 11\r\n$prompt $" { pass "bad value for localval1" }
963 -re "$prompt $" { fail "bad value for localval1" ; return }
964 timeout { fail "(timeout) bad value for localval1" ; return }
965 }
966 send "print localval2\n"
967 expect {
968 -re ".* = 12\r\n$prompt $" { pass "bad value for localval2" }
969 -re "$prompt $" { fail "bad value for localval2" ; return }
970 timeout { fail "(timeout) bad value for localval2" ; return }
971 }
972 send "print localval3\n"
973 expect {
974 -re "No symbol \"localval3\" in current context.\r\n$prompt $" {
975 pass "bad value for localval3"
976 }
977 -re "$prompt $" { fail "bad value for localval3" ; return }
978 timeout { fail "(timeout) bad value for localval3" ; return }
979 }
980
981 # This test will only fail if the file was compiled by gcc, but
982 # there's no way to check that.
983 setup_xfail "a29k-*-udi" 2423
984 send "cont\n"
985 expect {
986 -re "Break.* marker4.*at .*:$decimal.*$prompt $" {
987 pass "continue to marker4"
988 send "up\n"
989 expect {
990 -re ".*$prompt $" { pass "up from marker4" }
991 timeout { fail "up from marker4" ; return }
992 }
993 }
994 -re "$prompt $" { fail "continue to marker4" ; return }
995 timeout { fail "(timeout) continue to marker4" ; return }
996 }
997
998 send "print localval\n"
999 expect {
1000 -re ".* = 30\r\n$prompt $" { pass "bad value for localval, innermost scope" }
1001 -re "$prompt $" {
1002 fail "bad value for localval, innermost scope" ; return
1003 }
1004 timeout {
1005 fail "(timeout) bad value for localval, innermost scope" ; return
1006 }
1007 }
1008 send "print localval1\n"
1009 expect {
1010 -re ".* = 11\r\n$prompt $" { pass "bad value for localval1" }
1011 -re "$prompt $" { fail "bad value for localval1" ; return }
1012 timeout { fail "(timeout) bad value for localval1" ; return }
1013 }
1014 send "print localval2\n"
1015 expect {
1016 -re ".* = 12\r\n$prompt $" { pass "bad value for localval2" }
1017 -re "$prompt $" { fail "bad value for localval2" ; return }
1018 timeout { fail "(timeout) bad value for localval2" ; return }
1019 }
1020 send "print localval3\n"
1021 expect {
1022 -re ".* = 13\r\n$prompt $" { pass "bad value for localval3" }
1023 -re "$prompt $" { fail "bad value for localval3" ; return }
1024 timeout { fail "(timeout) bad value for localval3" ; return }
1025 }
1026 }
1027
1028 # Start with a fresh gdb.
1029
1030 gdb_exit
1031 gdb_start
1032 gdb_reinitialize_dir $srcdir/$subdir
1033 gdb_load $objdir/$subdir/$binfile
1034
1035 if [istarget "*-*-vxworks*"] {
1036 set timeout 120
1037 }
1038
1039 # Test that variables in various segments print out correctly before
1040 # the program is run.
1041
1042 # AIX--sections get mapped to the same address so we can't get the right one.
1043 setup_xfail "rs6000-*-*"
1044
1045 gdb_test "print 'scope0.c'::filelocal_ro" "= 201"
1046
1047 # gdb currently cannot access bss memory on some targets if the inferior
1048 # is not running.
1049 send "print 'scope0.c'::filelocal_bss\n"
1050 expect {
1051 -re "= 0.*$prompt $" {
1052 pass "print 'scope0.c'::filelocal_bss"
1053 }
1054 -re "Cannot access memory.*$prompt $" {
1055 setup_xfail "*-*-*"
1056 fail "print 'scope0.c'::filelocal_bss"
1057 }
1058 -re ".*$prompt $" {
1059 fail "print 'scope0.c'::filelocal_bss"
1060 }
1061 default {
1062 fail "print 'scope0.c'::filelocal_bss"
1063 }
1064 }
1065
1066 # AIX--sections get mapped to the same address so we can't get the right one.
1067 setup_xfail "rs6000-*-*"
1068
1069 gdb_test "print 'scope0.c'::filelocal" "= 1" \
1070 "print 'scope0.c'::filelocal before run"
1071
1072 if [runto main] then { test_at_main }
1073 if [istarget "mips-idt-*"] then {
1074 # Restart because IDT/SIM runs out of file descriptors.
1075 gdb_exit
1076 gdb_start
1077 gdb_reinitialize_dir $srcdir/$subdir
1078 gdb_load $objdir/$subdir/$binfile
1079 }
1080 if [runto foo] then { test_at_foo }
1081 if [istarget "mips-idt-*"] then {
1082 # Restart because IDT/SIM runs out of file descriptors.
1083 gdb_exit
1084 gdb_start
1085 gdb_reinitialize_dir $srcdir/$subdir
1086 gdb_load $objdir/$subdir/$binfile
1087 }
1088 if [runto bar] then { test_at_bar }
1089 if [istarget "mips-idt-*"] then {
1090 # Restart because IDT/SIM runs out of file descriptors.
1091 gdb_exit
1092 gdb_start
1093 gdb_reinitialize_dir $srcdir/$subdir
1094 gdb_load $objdir/$subdir/$binfile
1095 }
1096 if [runto localscopes] then { test_at_localscopes }
1097 if [istarget "mips-idt-*"] then {
1098 # Restart because IDT/SIM runs out of file descriptors.
1099 gdb_exit
1100 gdb_start
1101 gdb_reinitialize_dir $srcdir/$subdir
1102 gdb_load $objdir/$subdir/$binfile
1103 }
1104 if [runto autovars] then { test_at_autovars }
1105
1106 if [istarget "*-*-vxworks*"] {
1107 set timeout 120
1108 }
This page took 0.06234 seconds and 5 git commands to generate.