Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* 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

* 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