* Lot of FAILs with gdb.base/structs.exp
@ 2013-02-12 23:02 Franck Jullien
2013-02-13 2:59 ` Sergio Durigan Junior
0 siblings, 1 reply; 7+ messages in thread
From: Franck Jullien @ 2013-02-12 23:02 UTC (permalink / raw)
To: gdb
[-- Attachment #1: Type: text/plain, Size: 984 bytes --]
Hi,
I'm working on OpenRISC GDB 7.5 port. While running the testsuite,
I get some FAILs with gdb.base/structs.exp. One of the problem is
isolated here:
dir ../../or1k-src/gdb/testsuite/gdb.base
file /home/franck/openRISC/bld-or1k-src/gdb/testsuite/gdb.base/structs-tc
target sim
load
set print sevenbit-strings
set print address off
set width 0
set print elements 300
delete breakpoints
info breakpoints
break main
target sim
load
run
info source
break 407
continue
p chartest
ptype foo1
p/c fun1()
result:
-------
....
type = struct struct1 {
tc a;
}
[Inferior 1 (process 42000) exited with code 0400]
test_struct.txt:20: Error in sourced command file:
The program being debugged exited while in a function called from GDB.
Evaluation of the expression containing the function
(fun1) will be abandoned.
(gdb) bt
No stack.
(gdb)
While calling "p/c fun1()", the program exit and I have no clue
where I should start debugging this...
Any advice ?
Thanks in advance.
Franck.
[-- Attachment #2: gdb.sum --]
[-- Type: application/octet-stream, Size: 42709 bytes --]
Test Run By franck on Tue Feb 12 23:53:23 2013
Target is or1k-unknown-elf
Host is i686-pc-linux-gnu
=== gdb tests ===
Schedule of variations:
or1k-elf-sim
Running target or1k-elf-sim
Running ../../../or1k-src/gdb/testsuite/gdb.base/structs.exp ...
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: continue to breakpoint: chartest-done
PASS: gdb.base/structs.exp: p chartest
PASS: gdb.base/structs.exp: ptype foo1; structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tc (the program exited)
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 1 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 5 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 6 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 7 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 7 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 7 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 8 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 8 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 8 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 9 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 9 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 9 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 10 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 10 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 10 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 11 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 11 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 11 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 12 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 12 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 12 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 13 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 13 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 13 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 14 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 14 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 14 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 15 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 15 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 15 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 16 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 16 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 16 structs-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 17 structs-tc
FAIL: gdb.base/structs.exp: call Fun<n>(foo<n>); call 17 structs-tc
FAIL: gdb.base/structs.exp: p/c L<n>; call 17 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tc
FAIL: gdb.base/structs.exp: return foo<n>; return 1 structs-tc
FAIL: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tc
FAIL: gdb.base/structs.exp: finish foo<n>; return 1 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tc
PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc
FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-tc
FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc
FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc
PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 3 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for return; return 3 structs-tc
FAIL: gdb.base/structs.exp: return foo<n>; return 3 structs-tc
FAIL: gdb.base/structs.exp: value foo<n> returned; return 3 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 3 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for finish; return 3 structs-tc
FAIL: gdb.base/structs.exp: finish foo<n>; return 3 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: value foo<n> finished; return 3 structs-tc
PASS: gdb.base/structs.exp: return value known implies finish value known; return 3 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 4 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for return; return 4 structs-tc
FAIL: gdb.base/structs.exp: return foo<n>; return 4 structs-tc
FAIL: gdb.base/structs.exp: value foo<n> returned; return 4 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 4 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for finish; return 4 structs-tc
FAIL: gdb.base/structs.exp: finish foo<n>; return 4 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: value foo<n> finished; return 4 structs-tc
PASS: gdb.base/structs.exp: return value known implies finish value known; return 4 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 5 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for return; return 5 structs-tc
FAIL: gdb.base/structs.exp: return foo<n>; return 5 structs-tc
FAIL: gdb.base/structs.exp: value foo<n> returned; return 5 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 5 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for finish; return 5 structs-tc
FAIL: gdb.base/structs.exp: finish foo<n>; return 5 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: value foo<n> finished; return 5 structs-tc
PASS: gdb.base/structs.exp: return value known implies finish value known; return 5 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 6 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for return; return 6 structs-tc
FAIL: gdb.base/structs.exp: return foo<n>; return 6 structs-tc
FAIL: gdb.base/structs.exp: value foo<n> returned; return 6 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 6 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for finish; return 6 structs-tc
FAIL: gdb.base/structs.exp: finish foo<n>; return 6 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: value foo<n> finished; return 6 structs-tc
PASS: gdb.base/structs.exp: return value known implies finish value known; return 6 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 7 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for return; return 7 structs-tc
FAIL: gdb.base/structs.exp: return foo<n>; return 7 structs-tc
FAIL: gdb.base/structs.exp: value foo<n> returned; return 7 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 7 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for finish; return 7 structs-tc
FAIL: gdb.base/structs.exp: finish foo<n>; return 7 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: value foo<n> finished; return 7 structs-tc
PASS: gdb.base/structs.exp: return value known implies finish value known; return 7 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 8 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for return; return 8 structs-tc
FAIL: gdb.base/structs.exp: return foo<n>; return 8 structs-tc
FAIL: gdb.base/structs.exp: value foo<n> returned; return 8 structs-tc
FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 8 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: zed L<n> for finish; return 8 structs-tc
FAIL: gdb.base/structs.exp: finish foo<n>; return 8 structs-tc (the program is no longer running)
FAIL: gdb.base/structs.exp: value foo<n> finished; return 8 structs-tc
PASS: gdb.base/structs.exp: return value known implies finish value known; return 8 structs-tc
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo1; structs-ts
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-ts
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-ts
PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-ts
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ts
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ts
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ts
PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ts
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ts
PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ts
PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-ts
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-ts
PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-ts
PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-ts
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-ts
PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-ts
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-ts
PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-ts
PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-ts
PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-ts
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-ts
PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-ts
PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-ts
FAIL: gdb.base/structs.exp: value foo<n> finished; return 1 structs-ts
PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-ts
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ts
PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ts
PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ts
PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ts
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ts
PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ts
PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ts
FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ts
PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ts
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 3 structs-ts
PASS: gdb.base/structs.exp: zed L<n> for return; return 3 structs-ts
PASS: gdb.base/structs.exp: return foo<n>; return 3 structs-ts
PASS: gdb.base/structs.exp: value foo<n> returned; return 3 structs-ts
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 3 structs-ts
PASS: gdb.base/structs.exp: zed L<n> for finish; return 3 structs-ts
PASS: gdb.base/structs.exp: finish foo<n>; return 3 structs-ts
PASS: gdb.base/structs.exp: value foo<n> finished; return 3 structs-ts
PASS: gdb.base/structs.exp: return value known implies finish value known; return 3 structs-ts
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 4 structs-ts
PASS: gdb.base/structs.exp: zed L<n> for return; return 4 structs-ts
PASS: gdb.base/structs.exp: return foo<n>; return 4 structs-ts
PASS: gdb.base/structs.exp: value foo<n> returned; return 4 structs-ts
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 4 structs-ts
PASS: gdb.base/structs.exp: zed L<n> for finish; return 4 structs-ts
PASS: gdb.base/structs.exp: finish foo<n>; return 4 structs-ts
PASS: gdb.base/structs.exp: value foo<n> finished; return 4 structs-ts
PASS: gdb.base/structs.exp: return value known implies finish value known; return 4 structs-ts
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo1; structs-ti
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-ti
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-ti
PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-ti
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ti
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ti
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ti
PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ti
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ti
PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ti
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-ti
PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-ti
PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-ti
PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-ti
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-ti
PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-ti
PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-ti
FAIL: gdb.base/structs.exp: value foo<n> finished; return 1 structs-ti
PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-ti
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ti
PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ti
PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ti
PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ti
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ti
PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ti
PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ti
PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ti
PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ti
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo1; structs-tl
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tl
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tl
PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tl
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tl
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tl
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tl
PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tl
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tl
PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tl
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tl
PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tl
PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tl
PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tl
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tl
PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tl
PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tl
FAIL: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tl
PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tl
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tl
PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tl
PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tl
PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tl
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tl
PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tl
PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tl
PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tl
PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tl
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo1; structs-tll
PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tll
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tll
PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tll
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tll
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tll
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tll
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tll
PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tll
PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tll
PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tll
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tll
PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tll
PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tll
PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tll
PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tll
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo1; structs-tf
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tf
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tf
PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tf
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tf
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tf
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf
PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tf
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tf
PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tf
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tf
PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tf
PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tf
PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tf
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tf
PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tf
PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tf
FAIL: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tf
PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tf
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf
PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf
PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tf
PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf
PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf
PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf
PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf
PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tf
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo1; structs-td
PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-td
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-td
PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-td
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-td
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-td
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-td
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-td
PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-td
PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-td
PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-td
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-td
PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-td
PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-td
PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-td
PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-td
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo1; structs-tld
PASS: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tld
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 1 structs-tld
PASS: gdb.base/structs.exp: p/c L<n>; call 1 structs-tld
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tld
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tld
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tld
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tld
PASS: gdb.base/structs.exp: zed L<n> for return; return 1 structs-tld
PASS: gdb.base/structs.exp: return foo<n>; return 1 structs-tld
PASS: gdb.base/structs.exp: value foo<n> returned; return 1 structs-tld
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tld
PASS: gdb.base/structs.exp: zed L<n> for finish; return 1 structs-tld
PASS: gdb.base/structs.exp: finish foo<n>; return 1 structs-tld
PASS: gdb.base/structs.exp: value foo<n> finished; return 1 structs-tld
PASS: gdb.base/structs.exp: return value known implies finish value known; return 1 structs-tld
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-ts-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ts-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ts-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ts-tc
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ts-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ts-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ts-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-ts-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-ts-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-ts-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-ts-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-ts-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-ts-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-ts-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-ts-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-ts-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 7 structs-ts-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 7 structs-ts-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 7 structs-ts-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 8 structs-ts-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 8 structs-ts-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 8 structs-ts-tc
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ts-tc
PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ts-tc
PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ts-tc
FAIL: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ts-tc
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ts-tc
PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ts-tc
PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ts-tc
FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ts-tc
PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ts-tc
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-ti-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-ti-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-ti-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-ti-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-ti-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-ti-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-ti-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-ti-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-ti-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-ti-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-ti-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-ti-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-ti-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-ti-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-ti-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-ti-tc
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ti-tc
PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-ti-tc
PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-ti-tc
PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-ti-tc
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ti-tc
PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ti-tc
PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-ti-tc
PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ti-tc
PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-ti-tc
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-tl-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tl-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tl-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tl-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tl-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tl-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tl-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tl-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tl-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tl-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tl-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tl-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tl-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tl-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tl-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tl-tc
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tl-tc
PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tl-tc
PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tl-tc
PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tl-tc
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tl-tc
PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tl-tc
PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tl-tc
PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tl-tc
PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tl-tc
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-tll-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tll-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tll-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tll-tc
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-tf-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tf-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tf-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tf-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tf-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tf-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tf-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tf-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tf-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tf-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tf-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tf-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tf-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tf-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tf-tc
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf-tc
PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf-tc
PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tf-tc
PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf-tc
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf-tc
PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf-tc
PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf-tc
PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf-tc
PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tf-tc
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-td-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-td-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-td-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-td-tc
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-tld-tc
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tld-tc
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tld-tc
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tld-tc
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-tc-ts
FAIL: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-ts
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-ts
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-ts
PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-ts
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-ts
PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-ts
PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-ts
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-ts
PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-ts
PASS: gdb.base/structs.exp: p/c fun<n>(); call 5 structs-tc-ts
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 5 structs-tc-ts
PASS: gdb.base/structs.exp: p/c L<n>; call 5 structs-tc-ts
PASS: gdb.base/structs.exp: p/c fun<n>(); call 6 structs-tc-ts
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 6 structs-tc-ts
PASS: gdb.base/structs.exp: p/c L<n>; call 6 structs-tc-ts
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-ts
PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-ts
PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-ts
PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-ts
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-ts
PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-ts
PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-ts
FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-ts
PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc-ts
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-tc-ti
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-ti
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-ti
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-ti
PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-ti
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-ti
PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-ti
PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-ti
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-ti
PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-ti
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-ti
PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-ti
PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-ti
PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-ti
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-ti
PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-ti
PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-ti
PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-ti
PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc-ti
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tl
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tl
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tl
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tl
PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-tl
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-tl
PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-tl
PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-tl
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-tl
PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-tl
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-tl
PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tc-tl
PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-tl
PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tc-tl
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-tl
PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-tl
PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tc-tl
PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc-tl
PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tc-tl
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tll
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tll
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tll
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tll
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tf
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tf
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tf
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tf
PASS: gdb.base/structs.exp: p/c fun<n>(); call 3 structs-tc-tf
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 3 structs-tc-tf
PASS: gdb.base/structs.exp: p/c L<n>; call 3 structs-tc-tf
PASS: gdb.base/structs.exp: p/c fun<n>(); call 4 structs-tc-tf
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 4 structs-tc-tf
PASS: gdb.base/structs.exp: p/c L<n>; call 4 structs-tc-tf
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-tc-td
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-td
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-td
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-td
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-tc-tld
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tc-tld
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tc-tld
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tc-tld
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-td-tf
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-td-tf
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-td-tf
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-td-tf
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-td-tf
PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-td-tf
PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-td-tf
PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-td-tf
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-td-tf
PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-td-tf
PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-td-tf
PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-td-tf
PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-td-tf
PASS: gdb.base/structs.exp: set print sevenbit-strings
PASS: gdb.base/structs.exp: set print address off
PASS: gdb.base/structs.exp: set width 0
PASS: gdb.base/structs.exp: set print elements 300
PASS: gdb.base/structs.exp: ptype foo2; structs-tf-td
PASS: gdb.base/structs.exp: p/c fun<n>(); call 2 structs-tf-td
PASS: gdb.base/structs.exp: call Fun<n>(foo<n>); call 2 structs-tf-td
PASS: gdb.base/structs.exp: p/c L<n>; call 2 structs-tf-td
PASS: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf-td
PASS: gdb.base/structs.exp: zed L<n> for return; return 2 structs-tf-td
PASS: gdb.base/structs.exp: return foo<n>; return 2 structs-tf-td
PASS: gdb.base/structs.exp: value foo<n> returned; return 2 structs-tf-td
PASS: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf-td
PASS: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tf-td
PASS: gdb.base/structs.exp: finish foo<n>; return 2 structs-tf-td
PASS: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tf-td
PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tf-td
=== gdb Summary ===
# of expected passes 504
# of unexpected failures 131
/home/franck/openRISC/bld-or1k-src/gdb/testsuite/../../gdb/gdb version 7.5.50.20121129-cvs -nw -nx -data-directory /home/franck/openRISC/bld-or1k-src/gdb/testsuite/../data-directory
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: Lot of FAILs with gdb.base/structs.exp 2013-02-12 23:02 Lot of FAILs with gdb.base/structs.exp Franck Jullien @ 2013-02-13 2:59 ` Sergio Durigan Junior [not found] ` <CAJfOKBxPQJhfc_kT_3m2OQTu-AHqr=fjA66EVD=3Z9_P1gQJOw@mail.gmail.com> 0 siblings, 1 reply; 7+ messages in thread From: Sergio Durigan Junior @ 2013-02-13 2:59 UTC (permalink / raw) To: Franck Jullien; +Cc: gdb On Tuesday, February 12 2013, Franck Jullien wrote: > Hi, > > I'm working on OpenRISC GDB 7.5 port. While running the testsuite, > I get some FAILs with gdb.base/structs.exp. One of the problem is > isolated here: Hi Frank, > result: > ------- > .... > > type = struct struct1 { > tc a; > } > [Inferior 1 (process 42000) exited with code 0400] > test_struct.txt:20: Error in sourced command file: This message is strange. What is this "test_struct.txt" file, why is it being sourced, and what is in line 20 of it? Can you also post a snippet of your gdb/testsuite/gdb.log (in the build dir) containing the failure? -- Sergio ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <CAJfOKBxPQJhfc_kT_3m2OQTu-AHqr=fjA66EVD=3Z9_P1gQJOw@mail.gmail.com>]
* Re: Lot of FAILs with gdb.base/structs.exp [not found] ` <CAJfOKBxPQJhfc_kT_3m2OQTu-AHqr=fjA66EVD=3Z9_P1gQJOw@mail.gmail.com> @ 2013-02-13 7:35 ` Sergio Durigan Junior 2013-02-13 10:18 ` Franck Jullien 0 siblings, 1 reply; 7+ messages in thread From: Sergio Durigan Junior @ 2013-02-13 7:35 UTC (permalink / raw) To: Franck Jullien; +Cc: gdb On Wednesday, February 13 2013, Franck Jullien wrote: >>> I'm working on OpenRISC GDB 7.5 port. [...] Ok, sorry, I should have noticed this earlier. It's hard to help without seeing the actual patches, etc. I looked at the OpenRISC website and noticed that they say "...there are still many regression failures [with the GDB 7.2 port], which remain to be investigated.", so it is really hard to say whether this regression you're seeing is your fault or not. I suggest you either (a) post what you're doing somewhere or (b) contact the toolchain development team from the OpenRISC project (best). Sorry for not being able to help more. -- Sergio ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Lot of FAILs with gdb.base/structs.exp 2013-02-13 7:35 ` Sergio Durigan Junior @ 2013-02-13 10:18 ` Franck Jullien 2013-02-13 11:09 ` Sergio Durigan Junior 2013-02-13 11:24 ` Pedro Alves 0 siblings, 2 replies; 7+ messages in thread From: Franck Jullien @ 2013-02-13 10:18 UTC (permalink / raw) To: Sergio Durigan Junior; +Cc: gdb [-- Attachment #1: Type: text/plain, Size: 1405 bytes --] 2013/2/13 Sergio Durigan Junior <sergiodj@redhat.com>: > On Wednesday, February 13 2013, Franck Jullien wrote: > >>>> I'm working on OpenRISC GDB 7.5 port. [...] > > Ok, sorry, I should have noticed this earlier. It's hard to help > without seeing the actual patches, etc. I looked at the OpenRISC > website and noticed that they say "...there are still many regression > failures [with the GDB 7.2 port], which remain to be investigated.", so > it is really hard to say whether this regression you're seeing is your > fault or not. > > I suggest you either (a) post what you're doing somewhere or (b) contact > the toolchain development team from the OpenRISC project (best). > > Sorry for not being able to help more. > > -- > Sergio The current OpenRISC GDB 7.5 port is here: https://github.com/openrisc/or1k-src/tree/or1k/gdb I ported the GDB 7.2 port hosted at opencores.org (the one you took a look) to our new CGEN based toolchain. So I part of the development team without knowing that much of GDB :) Do you have any advice on the investigation method you'd use with a program exiting like this ?: ..... [Inferior 1 (process 42000) exited with code 0400] test_struct.txt:20: Error in sourced command file: The program being debugged exited while in a function called from GDB. Evaluation of the expression containing the function (fun1) will be abandoned. (gdb) bt No stack. (gdb) Franck. [-- Attachment #2: gdb.log --] [-- Type: application/octet-stream, Size: 11530 bytes --] Opening log files in . Test Run By franck on Tue Feb 12 23:53:23 2013 Target is or1k-unknown-elf Host is i686-pc-linux-gnu === gdb tests === setting trap for SIGTERM to terminated setting trap for SIGINT to interrupted by user setting trap for SIGQUIT to interrupted by user dirlist is /home/franck/openRISC/or1k-src/boards ../../../or1k-src/gdb/testsuite/boards/../boards /usr/local/share/dejagnu/baseboards pushing config for build, name is centos dirlist is /home/franck/openRISC/or1k-src/boards ../../../or1k-src/gdb/testsuite/boards/../boards /usr/local/share/dejagnu/baseboards pushing config for host, name is centos target list is "or1k-elf-sim" Schedule of variations: or1k-elf-sim target is or1k-elf-sim Running target or1k-elf-sim dirlist is /home/franck/openRISC/or1k-src/boards/centos ../../../or1k-src/gdb/testsuite/boards/../boards/centos /usr/local/share/dejagnu/baseboards/centos /home/franck/openRISC/or1k-src/boards ../../../or1k-src/gdb/testsuite/boards/../boards /usr/local/share/dejagnu/baseboards Using /home/franck/openRISC/or1k-src/boards/or1k-elf-sim.exp as board description file for target. Using /usr/local/share/dejagnu/config/sim.exp as generic interface file for target. Using /usr/local/share/dejagnu/baseboards/basic-sim.exp as board description file for target. Using simulator or1k-elf-run Transforming gcc to or1k-elf-gcc Using ../../../or1k-src/gdb/testsuite/config/sim.exp as tool-and-target-specific interface file. pushing config for target, name is or1k-elf-sim Running ../../../or1k-src/gdb/testsuite/gdb.base/structs.exp ... get_compiler_info: gcc-4-8-0 options are debug additional_flags=-DtA=tc source is ../../../or1k-src/gdb/testsuite/gdb.base/structs.c /home/franck/openRISC/bld-or1k-src/gdb/testsuite/gdb.base/structs-tc executable debug additional_flags=-DtA=tc doing compile Executing on host: or1k-elf-gcc ../../../or1k-src/gdb/testsuite/gdb.base/structs.c -DtA=tc -mnewlib -mboard=or1ksim -lboard-or1ksim -g -lm -o /home/franck/openRISC/bld-or1k-src/gdb/testsuite/gdb.base/structs-tc (timeout = 300) spawn -ignore SIGHUP or1k-elf-gcc ../../../or1k-src/gdb/testsuite/gdb.base/structs.c -DtA=tc -mnewlib -mboard=or1ksim -lboard-or1ksim -g -lm -o /home/franck/openRISC/bld-or1k-src/gdb/testsuite/gdb.base/structs-tc pid is 21851 -21851 output is status 0 Spawning /home/franck/openRISC/bld-or1k-src/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /home/franck/openRISC/bld-or1k-src/gdb/testsuite/../data-directory spawning command /home/franck/openRISC/bld-or1k-src/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /home/franck/openRISC/bld-or1k-src/gdb/testsuite/../data-directory spawn /home/franck/openRISC/bld-or1k-src/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /home/franck/openRISC/bld-or1k-src/gdb/testsuite/../data-directory GNU gdb (GDB) 7.5.50.20121129-cvs Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=i686-pc-linux-gnu --target=or1k-elf". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. (gdb) GDB initialized. set height 0 (gdb) set width 0 (gdb) dir Reinitialize source path to empty? (y or n) y Source directories searched: $cdir:$cwd (gdb) dir ../../../or1k-src/gdb/testsuite/gdb.base Source directories searched: /home/franck/openRISC/bld-or1k-src/gdb/testsuite/../../../or1k-src/gdb/testsuite/gdb.base:$cdir:$cwd (gdb) Dir set to ../../../or1k-src/gdb/testsuite/gdb.base kill The program is not being run. (gdb) file /home/franck/openRISC/bld-or1k-src/gdb/testsuite/gdb.base/structs-tc Reading symbols from /home/franck/openRISC/bld-or1k-src/gdb/testsuite/gdb.base/structs-tc...done. (gdb) Loaded /home/franck/openRISC/bld-or1k-src/gdb/testsuite/gdb.base/structs-tc into /home/franck/openRISC/bld-or1k-src/gdb/testsuite/../../gdb/gdb target sim Seeding random generator with value 0x7b99444f Connected to the simulator. (gdb) Set target to sim load Loading section .vectors, size 0x2000 vma 0x0 Loading section .init, size 0x28 vma 0x2000 Loading section .text, size 0x312c vma 0x2028 Loading section .fini, size 0x1c vma 0x5154 Loading section .rodata, size 0x6 vma 0x5170 Loading section .eh_frame, size 0x4 vma 0x7178 Loading section .ctors, size 0x8 vma 0x717c Loading section .dtors, size 0x8 vma 0x7184 Loading section .jcr, size 0x4 vma 0x718c Loading section .data, size 0x668 vma 0x7190 Start address 0x100 Transfer rate: 180144 bits in <1 sec. (gdb) set print sevenbit-strings (gdb) PASS: gdb.base/structs.exp: set print sevenbit-strings set print address off (gdb) PASS: gdb.base/structs.exp: set print address off set width 0 (gdb) PASS: gdb.base/structs.exp: set width 0 set print elements 300 (gdb) PASS: gdb.base/structs.exp: set print elements 300 delete breakpoints (gdb) info breakpoints No breakpoints or watchpoints. (gdb) break main Breakpoint 1: file ../../../or1k-src/gdb/testsuite/gdb.base/structs.c, line 405. (gdb) target sim Connected to the simulator. (gdb) Set target to sim load Loading section .vectors, size 0x2000 vma 0x0 Loading section .init, size 0x28 vma 0x2000 Loading section .text, size 0x312c vma 0x2028 Loading section .fini, size 0x1c vma 0x5154 Loading section .rodata, size 0x6 vma 0x5170 Loading section .eh_frame, size 0x4 vma 0x7178 Loading section .ctors, size 0x8 vma 0x717c Loading section .dtors, size 0x8 vma 0x7184 Loading section .jcr, size 0x4 vma 0x718c Loading section .data, size 0x668 vma 0x7190 Start address 0x100 Transfer rate: 180144 bits in <1 sec. (gdb) run Starting program: /home/franck/openRISC/bld-or1k-src/gdb/testsuite/gdb.base/structs-tc Breakpoint 1, main () at ../../../or1k-src/gdb/testsuite/gdb.base/structs.c:405 405 for (i = 0; i < 256; i++) (gdb) info source Current source file is ../../../or1k-src/gdb/testsuite/gdb.base/structs.c Compilation directory is /home/franck/openRISC/bld-or1k-src/gdb/testsuite Located in /home/franck/openRISC/or1k-src/gdb/testsuite/gdb.base/structs.c Contains 457 lines. Source language is c. Compiled with DWARF 2 debugging format. Does not include preprocessor macro info. (gdb) debug format is DWARF 2 break 407 Breakpoint 2: file ../../../or1k-src/gdb/testsuite/gdb.base/structs.c, line 407. (gdb) continue Continuing. Breakpoint 2, main () at ../../../or1k-src/gdb/testsuite/gdb.base/structs.c:407 407 chartest[0].c = 0; /* chartest-done */ (gdb) PASS: gdb.base/structs.exp: continue to breakpoint: chartest-done p chartest $1 = {{c = 0 '\000'}, {c = 1 '\001'}, {c = 2 '\002'}, {c = 3 '\003'}, {c = 4 '\004'}, {c = 5 '\005'}, {c = 6 '\006'}, {c = 7 '\a'}, {c = 8 '\b'}, {c = 9 '\t'}, {c = 10 '\n'}, {c = 11 '\v'}, {c = 12 '\f'}, {c = 13 '\r'}, {c = 14 '\016'}, {c = 15 '\017'}, {c = 16 '\020'}, {c = 17 '\021'}, {c = 18 '\022'}, {c = 19 '\023'}, {c = 20 '\024'}, {c = 21 '\025'}, {c = 22 '\026'}, {c = 23 '\027'}, {c = 24 '\030'}, {c = 25 '\031'}, {c = 26 '\032'}, {c = 27 '\033'}, {c = 28 '\034'}, {c = 29 '\035'}, {c = 30 '\036'}, {c = 31 '\037'}, {c = 32 ' '}, {c = 33 '!'}, {c = 34 '"'}, {c = 35 '#'}, {c = 36 '$'}, {c = 37 '%'}, {c = 38 '&'}, {c = 39 '\''}, {c = 40 '('}, {c = 41 ')'}, {c = 42 '*'}, {c = 43 '+'}, {c = 44 ','}, {c = 45 '-'}, {c = 46 '.'}, {c = 47 '/'}, {c = 48 '0'}, {c = 49 '1'}, {c = 50 '2'}, {c = 51 '3'}, {c = 52 '4'}, {c = 53 '5'}, {c = 54 '6'}, {c = 55 '7'}, {c = 56 '8'}, {c = 57 '9'}, {c = 58 ':'}, {c = 59 ';'}, {c = 60 '<'}, {c = 61 '='}, {c = 62 '>'}, {c = 63 '?'}, {c = 64 '@'}, {c = 65 'A'}, {c = 66 'B'}, {c = 67 'C'}, {c = 68 'D'}, {c = 69 'E'}, {c = 70 'F'}, {c = 71 'G'}, {c = 72 'H'}, {c = 73 'I'}, {c = 74 'J'}, {c = 75 'K'}, {c = 76 'L'}, {c = 77 'M'}, {c = 78 'N'}, {c = 79 'O'}, {c = 80 'P'}, {c = 81 'Q'}, {c = 82 'R'}, {c = 83 'S'}, {c = 84 'T'}, {c = 85 'U'}, {c = 86 'V'}, {c = 87 'W'}, {c = 88 'X'}, {c = 89 'Y'}, {c = 90 'Z'}, {c = 91 '['}, {c = 92 '\\'}, {c = 93 ']'}, {c = 94 '^'}, {c = 95 '_'}, {c = 96 '`'}, {c = 97 'a'}, {c = 98 'b'}, {c = 99 'c'}, {c = 100 'd'}, {c = 101 'e'}, {c = 102 'f'}, {c = 103 'g'}, {c = 104 'h'}, {c = 105 'i'}, {c = 106 'j'}, {c = 107 'k'}, {c = 108 'l'}, {c = 109 'm'}, {c = 110 'n'}, {c = 111 'o'}, {c = 112 'p'}, {c = 113 'q'}, {c = 114 'r'}, {c = 115 's'}, {c = 116 't'}, {c = 117 'u'}, {c = 118 'v'}, {c = 119 'w'}, {c = 120 'x'}, {c = 121 'y'}, {c = 122 'z'}, {c = 123 '{'}, {c = 124 '|'}, {c = 125 '}'}, {c = 126 '~'}, {c = 127 '\177'}, {c = -128 '\200'}, {c = -127 '\201'}, {c = -126 '\202'}, {c = -125 '\203'}, {c = -124 '\204'}, {c = -123 '\205'}, {c = -122 '\206'}, {c = -121 '\207'}, {c = -120 '\210'}, {c = -119 '\211'}, {c = -118 '\212'}, {c = -117 '\213'}, {c = -116 '\214'}, {c = -115 '\215'}, {c = -114 '\216'}, {c = -113 '\217'}, {c = -112 '\220'}, {c = -111 '\221'}, {c = -110 '\222'}, {c = -109 '\223'}, {c = -108 '\224'}, {c = -107 '\225'}, {c = -106 '\226'}, {c = -105 '\227'}, {c = -104 '\230'}, {c = -103 '\231'}, {c = -102 '\232'}, {c = -101 '\233'}, {c = -100 '\234'}, {c = -99 '\235'}, {c = -98 '\236'}, {c = -97 '\237'}, {c = -96 '\240'}, {c = -95 '\241'}, {c = -94 '\242'}, {c = -93 '\243'}, {c = -92 '\244'}, {c = -91 '\245'}, {c = -90 '\246'}, {c = -89 '\247'}, {c = -88 '\250'}, {c = -87 '\251'}, {c = -86 '\252'}, {c = -85 '\253'}, {c = -84 '\254'}, {c = -83 '\255'}, {c = -82 '\256'}, {c = -81 '\257'}, {c = -80 '\260'}, {c = -79 '\261'}, {c = -78 '\262'}, {c = -77 '\263'}, {c = -76 '\264'}, {c = -75 '\265'}, {c = -74 '\266'}, {c = -73 '\267'}, {c = -72 '\270'}, {c = -71 '\271'}, {c = -70 '\272'}, {c = -69 '\273'}, {c = -68 '\274'}, {c = -67 '\275'}, {c = -66 '\276'}, {c = -65 '\277'}, {c = -64 '\300'}, {c = -63 '\301'}, {c = -62 '\302'}, {c = -61 '\303'}, {c = -60 '\304'}, {c = -59 '\305'}, {c = -58 '\306'}, {c = -57 '\307'}, {c = -56 '\310'}, {c = -55 '\311'}, {c = -54 '\312'}, {c = -53 '\313'}, {c = -52 '\314'}, {c = -51 '\315'}, {c = -50 '\316'}, {c = -49 '\317'}, {c = -48 '\320'}, {c = -47 '\321'}, {c = -46 '\322'}, {c = -45 '\323'}, {c = -44 '\324'}, {c = -43 '\325'}, {c = -42 '\326'}, {c = -41 '\327'}, {c = -40 '\330'}, {c = -39 '\331'}, {c = -38 '\332'}, {c = -37 '\333'}, {c = -36 '\334'}, {c = -35 '\335'}, {c = -34 '\336'}, {c = -33 '\337'}, {c = -32 '\340'}, {c = -31 '\341'}, {c = -30 '\342'}, {c = -29 '\343'}, {c = -28 '\344'}, {c = -27 '\345'}, {c = -26 '\346'}, {c = -25 '\347'}, {c = -24 '\350'}, {c = -23 '\351'}, {c = -22 '\352'}, {c = -21 '\353'}, {c = -20 '\354'}, {c = -19 '\355'}, {c = -18 '\356'}, {c = -17 '\357'}, {c = -16 '\360'}, {c = -15 '\361'}, {c = -14 '\362'}, {c = -13 '\363'}, {c = -12 '\364'}, {c = -11 '\365'}, {c = -10 '\366'}, {c = -9 '\367'}, {c = -8 '\370'}, {c = -7 '\371'}, {c = -6 '\372'}, {c = -5 '\373'}, {c = -4 '\374'}, {c = -3 '\375'}, {c = -2 '\376'}, {c = -1 '\377'}} (gdb) PASS: gdb.base/structs.exp: p chartest ptype foo1 type = struct struct1 { tc a; } (gdb) PASS: gdb.base/structs.exp: ptype foo1; structs-tc p/c fun1() [Inferior 1 (process 42000) exited with code 0400] The program being debugged exited while in a function called from GDB. Evaluation of the expression containing the function (fun1) will be abandoned. (gdb) FAIL: gdb.base/structs.exp: p/c fun<n>(); call 1 structs-tc (the program exited) call Fun1(foo1) You can't do that without a process to debug. ..... ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Lot of FAILs with gdb.base/structs.exp 2013-02-13 10:18 ` Franck Jullien @ 2013-02-13 11:09 ` Sergio Durigan Junior 2013-02-13 11:24 ` Pedro Alves 1 sibling, 0 replies; 7+ messages in thread From: Sergio Durigan Junior @ 2013-02-13 11:09 UTC (permalink / raw) To: Franck Jullien; +Cc: gdb On Wednesday, February 13 2013, Franck Jullien wrote: > Do you have any advice on the investigation method you'd use with a > program exiting like this ?: Hm, what I do is to debug GDB with... GDB :-). In this case, I would particularly try to figure what's going wrong with this inferior function call, and see where/why it fails. -- Sergio ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Lot of FAILs with gdb.base/structs.exp 2013-02-13 10:18 ` Franck Jullien 2013-02-13 11:09 ` Sergio Durigan Junior @ 2013-02-13 11:24 ` Pedro Alves 2013-02-13 13:23 ` Franck Jullien 1 sibling, 1 reply; 7+ messages in thread From: Pedro Alves @ 2013-02-13 11:24 UTC (permalink / raw) To: Franck Jullien; +Cc: Sergio Durigan Junior, gdb On 02/13/2013 10:18 AM, Franck Jullien wrote: > Do you have any advice on the investigation method you'd use with a > program exiting like this ?: ... > (gdb) PASS: gdb.base/structs.exp: p chartest > ptype foo1 > type = struct struct1 { > tc a; > } > (gdb) PASS: gdb.base/structs.exp: ptype foo1; structs-tc > p/c fun1() > [Inferior 1 (process 42000) exited with code 0400] > The program being debugged exited while in a function called from GDB. So you have some kind of bug in your inferior function call implementation. For some reason gdb doesn't regain control after the call ends. At this point I'd just switch to reproducing the problem manually while debugging gdb, and try to figure things out. Did this work with 7.2? That should make things easier, as you have a basis to compare. Maybe something to do with the fact that we now default to putting the call dummy on stack, while it would go on entry before. -- Pedro Alves ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Lot of FAILs with gdb.base/structs.exp 2013-02-13 11:24 ` Pedro Alves @ 2013-02-13 13:23 ` Franck Jullien 0 siblings, 0 replies; 7+ messages in thread From: Franck Jullien @ 2013-02-13 13:23 UTC (permalink / raw) To: Pedro Alves; +Cc: Sergio Durigan Junior, gdb 2013/2/13 Pedro Alves <palves@redhat.com>: > On 02/13/2013 10:18 AM, Franck Jullien wrote: >> Do you have any advice on the investigation method you'd use with a >> program exiting like this ?: > > ... > >> (gdb) PASS: gdb.base/structs.exp: p chartest >> ptype foo1 >> type = struct struct1 { >> tc a; >> } >> (gdb) PASS: gdb.base/structs.exp: ptype foo1; structs-tc >> p/c fun1() >> [Inferior 1 (process 42000) exited with code 0400] >> The program being debugged exited while in a function called from GDB. > > So you have some kind of bug in your inferior function call > implementation. For some reason gdb doesn't regain control > after the call ends. At this point I'd just switch to reproducing > the problem manually while debugging gdb, and try to figure > things out. > Did this work with 7.2? That should make things easier, > as you have a basis to compare. Maybe something to do > with the fact that we now default to putting the call > dummy on stack, while it would go on entry before. > > -- > Pedro Alves > Ok, thank you guys. I'd say it works with GDB 7.2 but I have to double check. I'll see what I can find and will keep you informed. Franck. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-02-13 13:23 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-12 23:02 Lot of FAILs with gdb.base/structs.exp Franck Jullien
2013-02-13 2:59 ` Sergio Durigan Junior
[not found] ` <CAJfOKBxPQJhfc_kT_3m2OQTu-AHqr=fjA66EVD=3Z9_P1gQJOw@mail.gmail.com>
2013-02-13 7:35 ` Sergio Durigan Junior
2013-02-13 10:18 ` Franck Jullien
2013-02-13 11:09 ` Sergio Durigan Junior
2013-02-13 11:24 ` Pedro Alves
2013-02-13 13:23 ` Franck Jullien
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox