1 # Copyright (C) 1992, 1994 Free Software Foundation, Inc.
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.
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.
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. */
17 # Please email any bugs, comments, and/or additions to this file to:
18 # bug-gdb@prep.ai.mit.edu
20 # This file was written by Fred Fish. (fnf@cygnus.com)
30 set srcfile $binfile.c
32 if ![file exists $objdir/$subdir/$binfile] then {
33 perror "$objdir/$subdir/$binfile does not exist."
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.
41 proc test_at_main {} {
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.
52 -re "$decimal.*foo \[)(\]+;\r\n$prompt $" {
53 pass "next over init() in main"
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 }
61 # Print scope0.c::filelocal, which is 1
63 send "print filelocal\n"
65 -re "\\\$$decimal = 1\r\n$prompt $" { pass "print filelocal" }
66 -re "$prompt $" { fail "print filelocal" ; return }
68 fail "(timeout) print filelocal" ; return
72 # The RS/6000 does not seem to be handle print 'file'::var.
73 setup_xfail "rs6000-*-*"
74 send "print 'scope0.c'::filelocal\n"
76 -re "\\\$$decimal = 1\r\n$prompt $" {
77 pass "print 'scope0.c'::filelocal at main"
79 -re "No symbol \"scope0.c\" in current context.*$prompt $" {
80 send "print '$srcdir/$subdir/scope0.c'::filelocal\n"
83 -re "$prompt $" { fail "print 'scope0.c'::filelocal at main" ; return }
85 fail "(timeout) print 'scope0.c'::filelocal at main" ; return
89 # Print scope0.c::filelocal_bss, which is 101
91 send "print filelocal_bss\n"
93 -re "\\\$$decimal = 101\r\n$prompt $" {
94 pass "print filelocal_bss"
96 -re "$prompt $" { fail "print filelocal_bss" ; return }
98 fail "(timeout) print filelocal_bss" ; return
102 setup_xfail "rs6000-*-*"
103 send "print 'scope0.c'::filelocal_bss\n"
105 -re "\\\$$decimal = 101\r\n$prompt $" {
106 pass "print 'scope0.c'::filelocal_bss"
108 -re "No symbol \"scope0.c\" in current context.*$prompt $" {
109 send "print '$srcdir/$subdir/scope0.c'::filelocal_bss\n"
112 -re "$prompt $" { fail "print 'scope0.c'::filelocal_bss" ; return }
114 fail "(timeout) print 'scope0.c'::filelocal_bss" ; return
118 # Print scope0.c::filelocal_ro, which is 201
120 send "print filelocal_ro\n"
122 -re "\\\$$decimal = 201\r\n$prompt $" { pass "print filelocal_ro" }
123 -re "$prompt $" { fail "print filelocal_ro" ; return }
125 fail "(timeout) print filelocal_ro" ; return
129 setup_xfail "rs6000-*-*"
130 send "print 'scope0.c'::filelocal_ro\n"
132 -re "\\\$$decimal = 201\r\n$prompt $" {
133 pass "print 'scope0.c'::filelocal_ro"
135 -re "No symbol \"scope0.c\" in current context.*$prompt $" {
136 send "print '$srcdir/$subdir/scope0.c'::filelocal_ro\n"
139 -re "$prompt $" { fail "print 'scope0.c'::filelocal_ro" ; return }
141 fail "(timeout) print 'scope0.c'::filelocal_ro" ; return
145 # Print scope1.c::filelocal, which is 2
147 setup_xfail "rs6000-*-*"
148 send "print 'scope1.c'::filelocal\n"
150 -re "\\\$$decimal = 2\r\n$prompt $" {
151 pass "print 'scope1.c'::filelocal"
153 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
154 send "print '$srcdir/$subdir/scope1.c'::filelocal\n"
157 -re "$prompt $" { fail "print 'scope1.c'::filelocal" ; return }
159 fail "(timeout) print 'scope1.c'::filelocal" ; return
163 # Print scope1.c::filelocal_bss, which is 102
165 setup_xfail "rs6000-*-*"
166 send "print 'scope1.c'::filelocal_bss\n"
168 -re "\\\$$decimal = 102\r\n$prompt $" {
169 pass "print 'scope1.c'::filelocal_bss"
171 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
172 send "print '$srcdir/$subdir/scope1.c'::filelocal_bss\n"
175 -re "$prompt $" { fail "print 'scope1.c'::filelocal_bss" ; return }
177 fail "(timeout) print 'scope1.c'::filelocal_bss" ; return
181 # Print scope1.c::filelocal_ro, which is 202
183 setup_xfail "rs6000-*-*"
184 send "print 'scope1.c'::filelocal_ro\n"
186 -re "\\\$$decimal = 202\r\n$prompt $" {
187 pass "print 'scope1.c'::filelocal_ro"
189 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
190 send "print '$srcdir/$subdir/scope1.c'::filelocal_ro\n"
193 -re "$prompt " {fail "print 'scope1.c'::filelocal_ro" ; return }
195 fail "(timeout) print 'scope1.c'::filelocal_ro" ; return
199 # Print scope1.c::foo::funclocal, which is 3
201 send "print foo::funclocal\n"
203 -re "\\\$$decimal = 3\r\n$prompt $" { pass "print foo::funclocal" }
204 -re "$prompt $" { fail "print foo::funclocal" ; return }
206 fail "(timeout) print foo::funclocal" ; return
210 setup_xfail "rs6000-*-*"
211 send "print 'scope1.c'::foo::funclocal\n"
213 -re "\\\$$decimal = 3\r\n$prompt $" {
214 pass "print 'scope1.c'::foo::funclocal"
216 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
217 send "print '$srcdir/$subdir/scope1.c'::foo::funclocal\n"
220 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal" ; return }
222 fail "(timeout) print 'scope1.c'::foo::funclocal" ; return
226 # Print scope1.c::foo::funclocal_ro, which is 203
228 send "print foo::funclocal_ro\n"
230 -re "\\\$$decimal = 203\r\n$prompt $" {
231 pass "print foo::funclocal_ro"
233 -re "$prompt $" { fail "print foo::funclocal_ro" ; return }
235 fail "(timeout) print foo::funclocal_ro" ; return
239 setup_xfail "rs6000-*-*"
240 send "print 'scope1.c'::foo::funclocal_ro\n"
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"
248 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal_ro" ; return }
250 fail "(timeout) print 'scope1.c'::foo::funclocal_ro" ; return
254 # Print scope1.c::bar::funclocal, which is 4
256 send "print bar::funclocal\n"
258 -re "\\\$$decimal = 4\r\n$prompt $" { pass "print bar::funclocal" }
259 -re "$prompt $" { fail "print bar::funclocal" ; return }
261 fail "(timeout) print bar::funclocal" ; return
265 setup_xfail "rs6000-*-*"
266 send "print 'scope1.c'::bar::funclocal\n"
268 -re "\\\$$decimal = 4\r\n$prompt $" {
269 pass "print 'scope1.c'::bar::funclocal"
271 -re "No symbol \"scope1.c\" in current context.*$prompt $" {
272 send "print '$srcdir/$subdir/scope1.c'::bar::funclocal\n"
275 -re "$prompt $" { fail "print 'scope1.c'::bar::funclocal" ; return }
277 fail "print 'scope1.c'::bar::funclocal" ; return
282 proc test_at_foo {} {
291 -re ".*bar \[)(\]+;\r\n$prompt $" {}
292 -re "$prompt $" { fail "continue to foo()" ; return }
293 timeout { fail "(timeout) continue to foo()" ; return }
296 # Print scope0.c::filelocal, which is 1
298 setup_xfail "rs6000-*-*"
299 send "print 'scope0.c'::filelocal\n"
301 -re "\\\$$decimal = 1\r\n$prompt $" {
302 pass "print 'scope0.c'::filelocal at foo"
304 -re "No symbol \"scope0.c\" in current context.*$prompt $" {
305 send "print '$srcdir/$subdir/scope0.c'::filelocal\n"
308 -re "$prompt $" { fail "print 'scope0.c'::filelocal at foo" ; return }
310 fail "(timeout) print 'scope0.c'::filelocal at foo" ; return
314 # Print scope0.c::filelocal_bss, which is 101
316 setup_xfail "rs6000-*-*"
317 send "print 'scope0.c'::filelocal_bss\n"
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"
324 -re "$prompt $" { fail "print 'scope0.c'::filelocal_bss" ; return }
326 fail "(timeout) print 'scope0.c'::filelocal_bss" ; return
330 # Print scope0.c::filelocal_ro, which is 201
332 setup_xfail "rs6000-*-*"
333 send "print 'scope0.c'::filelocal_ro\n"
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"
340 -re "$prompt $" { fail "print 'scope0.c'::filelocal_ro" ; return }
342 fail "(timeout) print 'scope0.c'::filelocal_ro" ; return
346 # Print scope1.c::filelocal, which is 2
348 send "print filelocal\n"
350 -re "\\\$$decimal = 2\r\n$prompt $" { pass "print filelocal" }
351 -re "$prompt $" { fail "print filelocal" ; return }
353 fail "(timeout) print filelocal" ; return
357 setup_xfail "rs6000-*-*"
358 send "print 'scope1.c'::filelocal\n"
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"
365 -re "$prompt $" { fail "print 'scope1.c'::filelocal" ; return }
367 fail "(timeout) print 'scope1.c'::filelocal" ; return
371 # Print scope1.c::filelocal_bss, which is 102
373 send "print filelocal_bss\n"
375 -re "\\\$$decimal = 102\r\n$prompt $" { pass "print filelocal_bss" }
376 -re "$prompt $" { fail "print filelocal_bss" ; return }
378 fail "(timeout) print filelocal_bss" ; return
382 setup_xfail "rs6000-*-*"
383 send "print 'scope1.c'::filelocal_bss\n"
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"
390 -re "$prompt $" { fail "print 'scope1.c'::filelocal_bss" ; return }
392 fail "(timeout) print 'scope1.c'::filelocal_bss" ; return
396 # Print scope1.c::filelocal_ro, which is 202
398 send "print filelocal_ro\n"
400 -re "\\\$$decimal = 202\r\n$prompt $" { pass "print filelocal_ro" }
401 -re "$prompt $" { fail "print filelocal_ro" ; return }
403 fail "(timeout) print filelocal_ro" ; return
407 setup_xfail "rs6000-*-*"
408 send "print 'scope1.c'::filelocal_ro\n"
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"
415 -re "$prompt $" { fail "print 'scope1.c'::filelocal_ro" ; return }
417 fail "(timeout) print 'scope1.c'::filelocal_ro" ; return
421 # Print scope1.c::foo::funclocal, which is 3
423 send "print funclocal\n"
425 -re "\\\$$decimal = 3\r\n$prompt $" { pass "print funclocal" }
426 -re "$prompt $" { fail "print funclocal" ; return }
428 fail "(timeout) print funclocal" ; return
432 send "print foo::funclocal\n"
434 -re "\\\$$decimal = 3\r\n$prompt $" { pass "print foo::funclocal" }
435 -re "$prompt $" { fail "print foo::funclocal" ; return }
437 fail "(timeout) print foo::funclocal" ; return
441 setup_xfail "rs6000-*-*"
442 send "print 'scope1.c'::foo::funclocal\n"
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"
449 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal" ; return }
451 fail "(timeout) print 'scope1.c'::foo::funclocal" ; return
455 # Print scope1.c::foo::funclocal_bss, which is 103
457 send "print funclocal_bss\n"
459 -re "\\\$$decimal = 103\r\n$prompt $" { pass "print funclocal_bss" }
460 -re "$prompt $" { fail "print funclocal_bss" ; return }
462 fail "(timeout) print funclocal_bss" ; return
466 send "print foo::funclocal_bss\n"
468 -re "\\\$$decimal = 103\r\n$prompt $" { pass "print foo::funclocal_bss" }
469 -re "$prompt $" { fail "print foo::funclocal_bss" ; return }
471 fail "(timeout) print foo::funclocal_bss" ; return
475 setup_xfail "rs6000-*-*"
476 send "print 'scope1.c'::foo::funclocal_bss\n"
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"
483 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal_bss" ; return }
485 fail "(timeout) print 'scope1.c'::foo::funclocal_bss" ; return
489 # Print scope1.c::foo::funclocal_ro, which is 203
491 send "print funclocal_ro\n"
493 -re "\\\$$decimal = 203\r\n$prompt $" { pass "print funclocal_ro" }
494 -re "$prompt $" { fail "print funclocal_ro" ; return }
496 fail "(timeout) print funclocal_ro" ; return
500 send "print foo::funclocal_ro\n"
502 -re "\\\$$decimal = 203\r\n$prompt $" { pass "print foo::funclocal_ro" }
503 -re "$prompt $" { fail "print foo::funclocal_ro" ; return }
505 fail "(timeout) print foo::funclocal_ro" ; return
509 setup_xfail "rs6000-*-*"
510 send "print 'scope1.c'::foo::funclocal_ro\n"
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"
517 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal_ro" ; return }
519 fail "(timeout) print 'scope1.c'::foo::funclocal_ro" ; return
523 # Print scope1.c::bar::funclocal, which is 4
525 send "print bar::funclocal\n"
527 -re "\\\$$decimal = 4\r\n$prompt $" { pass "print bar::funclocal" }
528 -re "$prompt $" { fail "print bar::funclocal" ; return }
530 fail "(timeout) print bar::funclocal" ; return
534 setup_xfail "rs6000-*-*"
535 send "print 'scope1.c'::bar::funclocal\n"
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"
542 -re "$prompt $" { fail "print 'scope1.c'::bar::funclocal" ; return }
544 fail "(timeout) print 'scope1.c'::bar::funclocal" ; return
549 proc test_at_bar {} {
559 timeout { fail "next in bar()" ; return }
562 # Print scope0.c::filelocal, which is 1
564 setup_xfail "rs6000-*-*"
565 send "print 'scope0.c'::filelocal\n"
567 -re "\\\$$decimal = 1\r\n$prompt $" {
568 pass "print 'scope0.c'::filelocal at bar"
570 -re "No symbol \"scope0.c\" in current context.*$prompt $" {
571 send "print '$srcdir/$subdir/scope0.c'::filelocal\n"
574 -re "$prompt $" { fail "print 'scope0.c'::filelocal at bar" ; return }
576 fail "(timeout) print 'scope0.c'::filelocal at bar" ; return
580 # Print scope0.c::filelocal_bss, which is 101
582 setup_xfail "rs6000-*-*"
583 send "print 'scope0.c'::filelocal_bss\n"
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"
590 -re "$prompt $" { fail "print 'scope0.c'::filelocal_bss" ; return }
592 fail "(timeout) print 'scope0.c'::filelocal_bss" ; return
596 # Print scope0.c::filelocal_ro, which is 201
598 setup_xfail "rs6000-*-*"
599 send "print 'scope0.c'::filelocal_ro\n"
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"
606 -re "$prompt $" { fail "print 'scope0.c'::filelocal_ro" ; return }
608 fail "(timeout) print 'scope0.c'::filelocal_ro" ; return
612 # Print scope1.c::filelocal, which is 2
614 send "print filelocal\n"
616 -re "\\\$$decimal = 2\r\n$prompt $" { pass "print filelocal" }
617 -re "$prompt $" { fail "print filelocal" ; return }
619 fail "(timeout) print filelocal" ; return
623 setup_xfail "rs6000-*-*"
624 send "print 'scope1.c'::filelocal\n"
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"
631 -re "$prompt $" { fail "print 'scope1.c'::filelocal" ; return }
633 fail "(timeout) print 'scope1.c'::filelocal" ; return
637 # Print scope1.c::filelocal_bss, which is 102
639 send "print filelocal_bss\n"
641 -re "\\\$$decimal = 102\r\n$prompt $" { pass "print filelocal_bss" }
642 -re "$prompt $" { fail "print filelocal_bss" ; return }
644 fail "(timeout) print filelocal_bss" ; return
648 setup_xfail "rs6000-*-*"
649 send "print 'scope1.c'::filelocal_bss\n"
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"
656 -re "$prompt $" { fail "print 'scope1.c'::filelocal_bss" ; return }
658 fail "(timeout) print 'scope1.c'::filelocal_bss" ; return
662 # Print scope1.c::filelocal_ro, which is 202
664 send "print filelocal_ro\n"
666 -re "\\\$$decimal = 202\r\n$prompt $" { pass "print filelocal_ro" }
667 -re "$prompt $" { fail "print filelocal_ro" ; return }
669 fail "(timeout) print filelocal_ro" ; return
673 setup_xfail "rs6000-*-*"
674 send "print 'scope1.c'::filelocal_ro\n"
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"
681 -re "$prompt $" { fail "print 'scope1.c'::filelocal_ro" ; return }
683 fail "(timeout) print 'scope1.c'::filelocal_ro" ; return
687 # Print scope1.c::foo::funclocal, which is 3
689 send "print foo::funclocal\n"
691 -re "\\\$$decimal = 3\r\n$prompt $" { pass "print foo::funclocal" }
692 -re "$prompt $" { fail "print foo::funclocal" ; return }
694 fail "(timeout) print foo::funclocal" ; return
698 setup_xfail "rs6000-*-*"
699 send "print 'scope1.c'::foo::funclocal\n"
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"
706 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal" ; return }
708 fail "(timeout) print 'scope1.c'::foo::funclocal" ; return
712 # Print scope1.c::foo::funclocal_bss, which is 103
714 send "print foo::funclocal_bss\n"
716 -re "\\\$$decimal = 103\r\n$prompt $" { pass "print foo::funclocal_bss" }
717 -re "$prompt $" { fail "print foo::funclocal_bss" ; return }
719 fail "(timeout) print foo::funclocal_bss" ; return
723 setup_xfail "rs6000-*-*"
724 send "print 'scope1.c'::foo::funclocal_bss\n"
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"
731 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal_bss" ; return }
733 fail "(timeout) print 'scope1.c'::foo::funclocal_bss" ; return
737 # Print scope1.c::foo::funclocal_ro, which is 203
739 send "print foo::funclocal_ro\n"
741 -re "\\\$$decimal = 203\r\n$prompt $" { pass "print foo::funclocal_ro" }
742 -re "$prompt $" { fail "print foo::funclocal_ro" ; return }
744 fail "(timeout) print foo::funclocal_ro" ; return
748 setup_xfail "rs6000-*-*"
749 send "print 'scope1.c'::foo::funclocal_ro\n"
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"
756 -re "$prompt $" { fail "print 'scope1.c'::foo::funclocal_ro" ; return }
758 fail "(timeout) print 'scope1.c'::foo::funclocal_ro" ; return
762 # Print scope1.c::bar::funclocal, which is 4
764 send "print funclocal\n"
766 -re "\\\$$decimal = 4\r\n$prompt $" { pass "print funclocal" }
767 -re "$prompt $" { fail "print funclocal" ; return }
769 fail "(timeout) print funclocal" ; return
773 send "print bar::funclocal\n"
775 -re "\\\$$decimal = 4\r\n$prompt $" { pass "print bar::funclocal" }
776 -re "$prompt $" { fail "print bar::funclocal" ; return }
778 fail "(timeout) print bar::funclocal" ; return
782 setup_xfail "rs6000-*-*"
783 send "print 'scope1.c'::bar::funclocal\n"
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"
790 -re "$prompt $" { fail "print 'scope1.c'::bar::funclocal" ; return }
792 fail "(timeout) print 'scope1.c'::bar::funclocal" ; return
796 # Print scope1.c::bar::funclocal_bss, which is 104
798 send "print funclocal_bss\n"
800 -re "\\\$$decimal = 104\r\n$prompt $" { pass "print funclocal_bss" }
801 -re "$prompt $" { fail "print funclocal_bss" ; return }
803 fail "(timeout) print funclocal_bss" ; return
807 send "print bar::funclocal_bss\n"
809 -re "\\\$$decimal = 104\r\n$prompt $" { pass "print bar::funclocal_bss" }
810 -re "$prompt $" { fail "print bar::funclocal_bss" ; return }
812 fail "(timeout) print bar::funclocal_bss" ; return
816 setup_xfail "rs6000-*-*"
817 send "print 'scope1.c'::bar::funclocal_bss\n"
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"
824 -re "$prompt $" { fail "print 'scope1.c'::bar::funclocal_bss" ; return }
826 fail "(timeout) print 'scope1.c'::bar::funclocal_bss" ; return
831 # FIXME: This test was originally part of some local scope resolution
832 # tests. It probably belongs somewhere else now.
834 proc test_at_autovars {} {
840 # Test symbol table lookup with 100 local (auto) variables.
842 send "break marker1\n" ; expect -re ".*$prompt $"
846 -re "Break.* marker1 \[)(\]+ at .*:$decimal.*$prompt $" {
850 timeout { fail "up from marker1" ; return }
853 -re "$prompt $" { fail "continue to marker1" ; return }
854 timeout { fail "(timeout) continue to marker1" ; return }
858 while {$count < 100} {
859 send "print i$count\n"
861 -re ".* = $count\r\n$prompt $" {}
863 fail "bad value for auto variable i$count"; return
866 fail "(timeout) bad value for auto variable i$count"; return
869 set count [expr $count+1]
872 pass "$count auto variables correctly initialized"
874 # Test that block variable sorting is not screwing us.
875 gdb_test "frame" "#.*autovars \\(bcd=5, abc=6\\).*" "args in correct order"
878 proc test_at_localscopes {} {
884 send "break marker2\n" ; expect -re ".*$prompt $"
885 send "break marker3\n" ; expect -re ".*$prompt $"
886 send "break marker4\n" ; expect -re ".*$prompt $"
890 -re "Break.* marker2 \[)(\]+ at .*:$decimal.*$prompt $" {
894 timeout { fail "up from marker2" ; return }
897 -re "$prompt $" { fail "continue to marker2" ; return }
898 timeout { fail "(timeout) continue to marker2" ; return }
901 # Should be at first (outermost) scope. Check values.
903 send "print localval\n"
905 -re ".* = 10\r\n$prompt $" { pass "bad value for localval, outer scope" }
906 -re "$prompt $" { fail "bad value for localval, outer scope" ; return }
908 fail "(timeout) bad value for localval, outer scope" ; return
911 send "print localval1\n"
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 }
917 send "print localval2\n"
919 -re "No symbol \"localval2\" in current context.\r\n$prompt $" {
920 pass "bad value for localval2"
922 -re "$prompt $" { fail "bad value for localval2" ; return }
923 timeout { fail "(timeout) bad value for localval2" ; return }
925 send "print localval3\n"
927 -re "No symbol \"localval3\" in current context.\r\n$prompt $" {
928 pass "bad value for localval3"
930 -re "$prompt $" { fail "bad value for localval3" ; return }
931 timeout { fail "(timeout) bad value for localval3" ; return }
936 -re "Break.* marker3 \[)(\]+ at .*:$decimal.*$prompt $" {
940 timeout { fail "up from marker3" ; return }
943 -re "$prompt $" { fail "continue to marker3" ; return }
944 timeout { fail "(timeout) continue to marker3" ; return }
947 # Should be at next (first nested) scope. Check values.
949 send "print localval\n"
951 -re ".* = 20\r\n$prompt $" { pass "bad value for localval, first nested scope" }
953 fail "bad value for localval, first nested scope" ; return
956 fail "(timeout) bad value for localval, first nested scope" ;
960 send "print localval1\n"
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 }
966 send "print localval2\n"
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 }
972 send "print localval3\n"
974 -re "No symbol \"localval3\" in current context.\r\n$prompt $" {
975 pass "bad value for localval3"
977 -re "$prompt $" { fail "bad value for localval3" ; return }
978 timeout { fail "(timeout) bad value for localval3" ; return }
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
986 -re "Break.* marker4.*at .*:$decimal.*$prompt $" {
987 pass "continue to marker4"
990 -re ".*$prompt $" { pass "up from marker4" }
991 timeout { fail "up from marker4" ; return }
994 -re "$prompt $" { fail "continue to marker4" ; return }
995 timeout { fail "(timeout) continue to marker4" ; return }
998 send "print localval\n"
1000 -re ".* = 30\r\n$prompt $" { pass "bad value for localval, innermost scope" }
1002 fail "bad value for localval, innermost scope" ; return
1005 fail "(timeout) bad value for localval, innermost scope" ; return
1008 send "print localval1\n"
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 }
1014 send "print localval2\n"
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 }
1020 send "print localval3\n"
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 }
1028 # Start with a fresh gdb.
1032 gdb_reinitialize_dir $srcdir/$subdir
1033 gdb_load $objdir/$subdir/$binfile
1035 if [istarget "*-*-vxworks*"] {
1039 # Test that variables in various segments print out correctly before
1040 # the program is run.
1042 # AIX--sections get mapped to the same address so we can't get the right one.
1043 setup_xfail "rs6000-*-*"
1045 gdb_test "print 'scope0.c'::filelocal_ro" "= 201"
1047 # gdb currently cannot access bss memory on some targets if the inferior
1049 send "print 'scope0.c'::filelocal_bss\n"
1051 -re "= 0.*$prompt $" {
1052 pass "print 'scope0.c'::filelocal_bss"
1054 -re "Cannot access memory.*$prompt $" {
1056 fail "print 'scope0.c'::filelocal_bss"
1059 fail "print 'scope0.c'::filelocal_bss"
1062 fail "print 'scope0.c'::filelocal_bss"
1066 # AIX--sections get mapped to the same address so we can't get the right one.
1067 setup_xfail "rs6000-*-*"
1069 gdb_test "print 'scope0.c'::filelocal" "= 1" \
1070 "print 'scope0.c'::filelocal before run"
1072 if [runto main] then { test_at_main }
1073 if [istarget "mips-idt-*"] then {
1074 # Restart because IDT/SIM runs out of file descriptors.
1077 gdb_reinitialize_dir $srcdir/$subdir
1078 gdb_load $objdir/$subdir/$binfile
1080 if [runto foo] then { test_at_foo }
1081 if [istarget "mips-idt-*"] then {
1082 # Restart because IDT/SIM runs out of file descriptors.
1085 gdb_reinitialize_dir $srcdir/$subdir
1086 gdb_load $objdir/$subdir/$binfile
1088 if [runto bar] then { test_at_bar }
1089 if [istarget "mips-idt-*"] then {
1090 # Restart because IDT/SIM runs out of file descriptors.
1093 gdb_reinitialize_dir $srcdir/$subdir
1094 gdb_load $objdir/$subdir/$binfile
1096 if [runto localscopes] then { test_at_localscopes }
1097 if [istarget "mips-idt-*"] then {
1098 # Restart because IDT/SIM runs out of file descriptors.
1101 gdb_reinitialize_dir $srcdir/$subdir
1102 gdb_load $objdir/$subdir/$binfile
1104 if [runto autovars] then { test_at_autovars }
1106 if [istarget "*-*-vxworks*"] {