This is the mail archive of the
gdb-testers@sources.redhat.com
mailing list for the GDB project.
Sunday Project gdb test results, 2001-12-03
- From: Michael Elizabeth Chastain <mec at shout dot net>
- To: gdb-testers at sources dot redhat dot com
- Date: Thu, 6 Dec 2001 04:07:12 -0600
- Subject: Sunday Project gdb test results, 2001-12-03
. Summary
. Coverage
1 platform
2 versions of gdb
4 versions of gcc
1 debugging option
8 total test runs
. Aggregate results
0 build failures
8 ERRORs
2 WARNINGs
234 FAILs
. Tables
http://www.shout.net/~mec/sunday/2001-12-03/index.html
. Old gdb bugs fixed
gdb.asm/asm-source.exp: a bug in gdb was fixed. In assembly code,
it is okay to have line numbers without function names.
gdb.c++/virtfunc.exp: gdb improved its handling of virtual functions.
. New gdb bugs detected
gdb gdb_5_1-2001-07-29-branch + gcc HEAD + -gdwarf-2 has a serious bug
which produces bad results: 188 ERRORs, 4 WARNINGs, 2459 FAILs.
This is the first week that I tried -gdwarf-2, so this is a
"new detection of bug" rather than "detection of new bug".
gdb.c++/classes.exp: gdb * + gcc HEAD + -gstabs+ has some pass -> fail
transitions caused by gcc changes. This may be a regression, or it
may be a beneficial gcc change which gdb does not understand yet.
. Test protocol changes since last report
I added the dimension of debugging format with two formats: -gstabs+
and -gdwarf-2. The tables show only -gstabs+, because -gdwarf-2
results for one configuration are unsuitable for tabular presentation.
. Result changes since last report
This section is only for -gstabs+.
. gdb.asm/asm-source.exp
[ok]
. analysis
A bug in gdb was fixed. In assembly code, it is okay to have
line numbers without function names.
. gdb.base/nodebug.exp
[ok]
. analysis
This is a bug in the test harness, or perhaps in the way that I
am using the test harness. In site.exp, I set target_list to a
value of "unix/-gdwarf2" or "unix/-gstabs". gdb.base/nodebug.exp
compiles the program-under-test without the "debug" option, but the
target_list flags are still in effect, so the program under test
is still compiled with a debugging option. This vitiates the test.
. gdb.c++/annota2.exp
[ok]
. analysis
This test is flaky -- it changes results a lot.
I have not investigated this.
. gdb.c++/classes.exp
[ACHTUNG]
. gdb.c++/classes.exp: calling method for small class
[ok]
. transitions
gdb HEAD, gcc 2.95.3, -gstabs+ : xfail -> fail
. log excerpts
# 2001-11-24/native/i686-pc-linux-gnulibc2.2-rh7.1/gdb-HEAD/gcc-2.95.3/g-stabs+/gdb.log
print v.method ()
Address requested for identifier "v" which is in a register.
(gdb) XFAIL: gdb.c++/classes.exp: calling method for small class (PRMS 2972)
# 2001-12-03/native/i686-pc-linux-gnulibc2.2-rh7.1/gdb-HEAD/gcc-2.95.3/g-stabs+/gdb.log
print v.method ()
Address requested for identifier "v" which is in register $ebx
(gdb) FAIL: gdb.c++/classes.exp: calling method for small class
. analysis
This test uses a variable which is of a very small class type,
in a scope where the program under the program under test does not
call methods of that variable or take the address of the variable.
Thus the compiler may place the variable in a register. This makes
it impossible for gdb to call methods on that variable.
gcc 2.95.3 does in fact place the variable in a register.
gcc 3 (all versions tested) does not place the variable in a register.
I believe that all versions of gcc are correct. The
program-under-test explicitly declares the variable to be of
type "register", so I believe that gcc is entitled to place it
in a register. (It would be different if the variable were not
declared "register". In that case, gcc's documentation states
that gcc shall not allocate the variable into a register if no
optimization flags are given).
I believe gdb is correct. gdb reports accurate information
about the program-under-test.
I consider this test case to be incorrect. I believe that
"Address requested for identifer \"v\".*register" should be
a plain PASS.
. gdb.c++/classes.exp: base class param->a
gdb.c++/classes.exp: base class param->x
gdb.c++/classes.exp: base class param.a
gdb.c++/classes.exp: base class param.x
gdb.c++/classes.exp: inherited class param->a
gdb.c++/classes.exp: inherited class param->x
gdb.c++/classes.exp: inherited class param.a
gdb.c++/classes.exp: inherited class param.x
[ACHTUNG]
. transitions
gdb HEAD, gcc HEAD, -gstabs+ : pass -> fail
gdb gdb-5_1-2001-07-29-branch, gcc HEAD, -gstabs+ : pass -> fail
. log excerpts
# 2001-11-24/native/i686-pc-linux-gnulibc2.2-rh7.1/gdb-gdb_5_1-2001-07-29-branch/gcc-HEAD/g-stabs+/gdb.log
call class_param.Aptr_a (&g_A)
$11 = 1
(gdb) PASS: gdb.c++/classes.exp: base class param->a
# 2001-12-03/native/i686-pc-linux-gnulibc2.2-rh7.1/gdb-gdb_5_1-2001-07-29-branch/gcc-HEAD/g-stabs+/gdb.log
call class_param.Aptr_a (&g_B)
Cannot evaluate function -- may be inlined
(gdb) FAIL: gdb.c++/classes.exp: inherited class param->a
. analysis
The only change in gdb gdb-5_1-2001-07-29-branch since last week
is the version number. Therefore, this must be a result of a
change in gcc HEAD, not in gdb. It may be a regression, or it
may be a beneficial gcc change which gdb does not understand yet.
The gdb.log entries for gdb HEAD are the same as for gdb
gdb-5_1-2001-07-29-branch.
. gdb.c++/virtfunc.exp
[ok]
. gdb.c++/virtfunc.exp: print pAe->f()
[ok]
. transitions
gdb HEAD, gcc 2.95.3, -gstabs+ : xfail -> xpass
. analysis
gdb improved its handling of virtual functions.
. gdb.c++/virtfunc.exp: print pADe->vg()
gdb.c++/virtfunc.exp: print pDd->vg()
gdb.c++/virtfunc.exp: print pDe->vg()
[ok]
. transitions
gdb HEAD, gcc 3.0.2, -gstabs+ : xfail -> xpass
gdb HEAD, gcc HEAD, -gstabs+ : xfail -> xpass
gdb HEAD, gcc gcc-3_0-branch, -gstabs+ : xfail -> xpass
. analysis
gdb improved its handling of virtual functions.
. Coverage
. Platforms
native i686-pc-linux-gnu (red hat linux 7.1)
. Versions
. naming convention
versions which start with a number are official releases.
versions named HEAD are the cvs HEAD (mainline).
versions with any other name are cvs branches.
. date
cvs checkouts started Mon Dec 3 10:04:52 PST 2001
cvs checkouts finished Mon Dec 3 21:01:20 PST 2001
. software under test
gdb HEAD, gdb gdb_5_1-2001-07-29-branch
gcc 2.95.3, gcc 3.0.2, gcc gcc-3_0-branch, gcc HEAD
binutils HEAD
. debugging formats under test
-gstabs+, -gdwarf-2
. baseline software
make 3.79.1
binutils 2.11.2
gcc 3.0.2
tcl 8.3.4
expect 5.33.0
dejagnu 1.4.2
. Counts
. native i686-pc-linux-gnu (red hat linux 7.1)
. libiberty
binutils HEAD All 645 tests passed
gcc HEAD All 645 tests passed
gcc gcc-3_0-branch All 645 tests passed
gdb HEAD All 645 tests passed
gdb gdb_5_1-2001-07-29-branch All 645 tests passed
. gdb
. reporting convention
Each test run generates a list of nine numbers:
error/warning, pass/fail/xpass/xfail, unresolved/untested/unsupported
. gdb HEAD
. gcc 2.95.3
. -gdwarf-2 0/0, 7809/179/30/107, 100/1/0
. -gstabs+ 0/0, 7762/137/36/190, 100/1/0
. gcc 3.0.2
. -gdwarf-2 0/0, 7905/154/29/104, 0/1/0
. -gstabs+ 0/0, 7857/113/32/190, 0/1/0
. gcc HEAD
. -gdwarf-2 4/2, 7897/157/29/78, 2/1/0
. -gstabs+ 4/2, 7847/118/32/164, 2/1/0
. gcc gcc-3_0-branch
. -gdwarf-2 0/0, 7905/154/29/104, 0/1/0
. -gstabs+ 0/0, 7857/113/32/190, 0/1/0
. gdb gdb_5_1-2001-07-29-branch
. gcc 2.95.3
. -gdwarf-2 4/0, 7498/182/83/141, 104/1/0
. -gstabs+ 4/0, 7536/143/32/193, 104/1/0
. gcc 3.0.2
. -gdwarf-2 4/0, 7593/159/80/139, 4/1/0
. -gstabs+ 4/0, 7614/137/26/194, 4/1/0
. gcc HEAD
. -gdwarf-2 188/4, 2504/2459/50/224, 0/1/0
. -gstabs+ 8/2, 7610/140/27/167, 6/1/0
. gcc gcc-3_0-branch
. -gdwarf-2 4/0, 7592/160/80/139, 4/1/0
. -gstabs+ 4/0, 7614/137/26/194, 4/1/0
. ERRORs and WARNINGs
. gdb gdb_5_1-2001-07-29-branch, gcc HEAD, -gdwarf2
[ACHTUNG]
. gdb.log excerpt
(gdb) file /berman/fsf/_today_/berman/native/build/gdb/gdb_5_1-2001-07-29-branch
/gdb/testsuite/gdb.base/run
Reading symbols from /berman/fsf/_today_/berman/native/build/gdb/gdb_5_1-2001-07-29-branch/gdb/testsuite/gdb.base/run...Dwarf Error: Cannot handle DW_FORM_strp in DWARF reader.
(gdb) ERROR: couldn't load /berman/fsf/_today_/berman/native/build/gdb/gdb_5_1-2001-07-29-branch/gdb/testsuite/gdb.base/run into /berman/fsf/_today_/berman/native/build/gdb/gdb_5_1-2001-07-29-branch/gdb/testsuite/../../gdb/gdb.
run
. analysis
http://sources.redhat.com/cgi-bin/gnatsweb.pl?cmd=view&pr=253&database=gdb
. gdb.base/setvar.exp
. gdb.base/weird.exp
[ok]
. gdb.sum excerpt
PASS: gdb.base/setvar.exp: set variable *(v_signed_short_pointer+1)=-456
ERROR: Process no longer exists
UNRESOLVED: gdb.base/setvar.exp: set variable signed short pointer
. analysis
This is a metacharacter problem with some "\{" constructions which
should be "\\}. It has been fixed in gdb mainline; the fix needs to be
brought to gdb 5.1 branch.
. patch
http://sources.redhat.com/ml/gdb-cvs/2001-10/msg00156.html
. gdb.c++/userdef.exp
[ok]
. gdb.log excerpt
Executing on host: g++ /berman/fsf/_today_/source/gdb/HEAD/gdb/testsuite/gdb.c++/userdef.cc -L/berman/fsf/_today_/berman/native/build/gdb/HEAD/libiberty -g -lm -o /berman/fsf/_today_/berman/native/build/gdb/HEAD/gdb/testsuite/gdb.c++/userdef (timeout = 300)
In file included from /berman/fsf/_today_/berman/native/install/gcc/HEAD/include/g++-v3/backward/iostream.h:31,
from /berman/fsf/_today_/source/gdb/HEAD/gdb/testsuite/gdb.c++/userdef.cc:1:
/berman/fsf/_today_/berman/native/install/gcc/HEAD/include/g++-v3/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.
. analysis
The test program gdb.c++/userdef.cc includes the obsolete header
<iostream.h>. It needs to include <iostream> instead. This causes a
gcc warning with gcc HEAD, which leads to 4 ERRORs and 2 WARNINGs in
both gdb mainline and 5.1 branch.