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