Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* gdb linux testing regressions (compared to 7/24)
@ 2000-08-10 17:56 Jimmy Guo
  2000-08-10 18:42 ` Daniel Berlin
  2000-08-10 22:02 ` Mark Kettenis
  0 siblings, 2 replies; 4+ messages in thread
From: Jimmy Guo @ 2000-08-10 17:56 UTC (permalink / raw)
  To: gdb

FYI:

Latest gdb source has a test regression of 200+ as compared to the 7/24
tree, on i686-pc-linux-gnu.  For example, gdb.base/break.exp:
...
print marker2(99)

read_register_bytes:  Couldn't update register 16.

(gdb) FAIL: gdb.base/break.exp: hit breakpoint on called function
...

Regression info is provided below ...

- Jimmy Guo, guo@cup.hp.com

 
    # of expected passes            5617
    # of unexpected failures        283
    # of unexpected successes       2
    # of expected failures          196
    # of unresolved testcases       143
    # of unsupported tests          89

------------------------------------------------------------------------
 Section - FAIL
 | 1 |: (P:PASS F:FAIL FTM:FAIL/timeout XFA:XFAIL XTM:XFAIL/timeout
         XPA:XPASS UNR:UNRESOLVED SKI:skipped '-':not run)
------------------------------------------------------------------------
gdb.base/break.exp
 | F |: hit breakpoint on called function

gdb.base/call-ar-st.exp
 | F |: print print_double_array(double_array), pattern 1
 | F |: print print_char_array(char_array), pattern 1
 | F |: print print_double_array(array_d), pattern 1
 | F |: print sum_array_print(10, *list1, *list2, *list3, *list4)
 | F |: print print_small_structs, pattern 1
 | F |: print compute_with_small_structs(20)
 | F |: print print_ten_doubles, pattern 1
 | F |: print print_small_structs from print_long_arg_list, pattern 1
 | F |: print print_bit_flags_combo from init_bit_flags_combo
 | F |: print print_long_arg_list, pattern 1
 | F |: print sum_struct_print(10, *struct1, *struct2, *struct3, *struct4)
 | F |: print print_struct_rep(*struct1, *struct2, *struct3), pattern 1
 | F |: print print_one_large_struct(*list1)

gdb.base/call-rt-st.exp
 | F |: print print_struct_rep(*struct1, *struct2, *struct3)
 | F |: print print_one_large_struct(*list1)
 | F |: print print_one_double(*d1)
 | F |: print print_two_floats(*f3)
 | F |: print print_bit_flags(*flags)
 | F |: print print_bit_flags_combo(*flags_combo)
 | F |: print print_three_chars(*three_char)
 | F |: print print_five_chars(*five_char)
 | F |: print print_int_char_combo(*int_char_combo)

gdb.base/call-strs.exp
 | F |: print str_func1(s)
 | F |: print str_func1("test string")
 | F |: call str_func1(s)
 | F |: call str_func1("test string")
 | F |: print str_func1(buf)
 | F |: call str_func1(buf)
 | F |: print str_func("a","b","c","d","e","f","g")
 | F |: call str_func("a","b","c","d","e","f","g")
 | F |: print str_func(s,s,s,s,s,s,s)
 | F |: call str_func(s,s,s,s,s,s,s)

gdb.base/callfuncs.exp
 | F |: p t_char_values(0,0)
 | F |: p t_char_values('a','b')
 | F |: p t_char_values(char_val1,char_val2)
 | F |: p t_char_values('a',char_val2)
 | F |: p t_char_values(char_val1,'b')
 | F |: p t_short_values(0,0)
 | F |: p t_short_values(10,-23)
 | F |: p t_short_values(short_val1,short_val2)
 | F |: p t_short_values(10,short_val2)
 | F |: p t_short_values(short_val1,-23)
 | F |: p t_int_values(0,0)
 | F |: p t_int_values(87,-26)
 | F |: p t_int_values(int_val1,int_val2)
 | F |: p t_int_values(87,int_val2)
 | F |: p t_int_values(int_val1,-26)
 | F |: p t_long_values(0,0)
 | F |: p t_long_values(789,-321)
 | F |: p t_long_values(long_val1,long_val2)
 | F |: p t_long_values(789,long_val2)
 | F |: p t_long_values(long_val1,-321)
 | F |: p t_float_values(0.0,0.0)
 | F |: p t_float_values(3.14159,-2.3765)
 | F |: p t_float_values(float_val1,float_val2)
 | F |: p t_float_values(3.14159,float_val2)
 | F |: p t_float_values(float_val1,-2.3765)
 | F |: p t_float_values2(0.0,0.0)
 | F |: p t_float_values2(3.14159,float_val2)
 | F |: p t_small_values(1,2,3,4,5,6,7,8,9,10)
 | F |: p t_double_values(0.0,0.0)
 | F |: p t_double_values(45.654,-67.66)
 | F |: p t_double_values(double_val1,double_val2)
 | F |: p t_double_values(45.654,double_val2)
 | F |: p t_double_values(double_val1,-67.66)
 | F |: p t_string_values(string_val2,string_val1)
 | F |: p t_string_values(string_val1,string_val2)
 | F |: p t_string_values("string 1","string 2")
 | F |: p t_string_values("string 1",string_val2)
 | F |: p t_string_values(string_val1,"string 2")
 | F |: p t_char_array_values(char_array_val2,char_array_val1)
 | F |: p t_char_array_values(char_array_val1,char_array_val2)
 | F |: p t_char_array_values("carray 1","carray 2")
 | F |: p t_char_array_values("carray 1",char_array_val2)
 | F |: p t_char_array_values(char_array_val1,"carray 2")
 | F |: p doubleit(4)
 | F |: p add(4,5)
 | F |: p t_func_values(func_val2,func_val1)
 | F |: p t_func_values(func_val1,func_val2)
 | F |: p t_func_values(add,func_val2)
 | F |: p t_func_values(func_val1,doubleit)
 | F |: p t_call_add(add,3,4)
 | F |: p t_call_add(func_val1,3,4)
 | F |: p t_enum_value1(enumval1)
 | F |: p t_enum_value1(enum_val1)
 | F |: p t_enum_value1(enum_val2)
 | F |: p t_enum_value2(enumval2)
 | F |: p t_enum_value2(enum_val2)
 | F |: p t_enum_value2(enum_val1)
 | F |: p sum_args(1,{2})
 | F |: p sum_args(2,{2,3})
 | F |: p sum_args(3,{2,3,4})
 | F |: p sum_args(4,{2,3,4,5})
 | F |: p sum10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
 | F |: p cmp10 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
 | F |: call inferior func with struct - returns char
 | F |: call inferior func with struct - returns short
 | F |: call inferior func with struct - returns int
 | F |: call inferior func with struct - returns long
 | F |: call inferior func with struct - returns float
 | F |: call inferior func with struct - returns double
 | F |: call inferior func with struct - returns char *

gdb.base/callfwmall.exp
 | F |: p t_char_values(0,0)
 | F |: p t_char_values('a','b')
 | F |: p t_char_values(char_val1,char_val2)
 | F |: p t_char_values('a',char_val2)
 | F |: p t_char_values(char_val1,'b')
 | F |: p t_short_values(0,0)
 | F |: p t_short_values(10,-23)
 | F |: p t_short_values(short_val1,short_val2)
 | F |: p t_short_values(10,short_val2)
 | F |: p t_short_values(short_val1,-23)
 | F |: p t_int_values(0,0)
 | F |: p t_int_values(87,-26)
 | F |: p t_int_values(int_val1,int_val2)
 | F |: p t_int_values(87,int_val2)
 | F |: p t_int_values(int_val1,-26)
 | F |: p t_long_values(0,0)
 | F |: p t_long_values(789,-321)
 | F |: p t_long_values(long_val1,long_val2)
 | F |: p t_long_values(789,long_val2)
 | F |: p t_long_values(long_val1,-321)
 | F |: p t_float_values(0.0,0.0)
 | F |: p t_float_values(3.14159,-2.3765)
 | F |: p t_float_values(float_val1,float_val2)
 | F |: p t_float_values(3.14159,float_val2)
 | F |: p t_float_values(float_val1,-2.3765)
 | F |: p t_float_values2(0.0,0.0)
 | F |: p t_float_values2(3.14159,float_val2)
 | F |: p t_small_values(1,2,3,4,5,6,7,8,9,10)
 | F |: p t_double_values(0.0,0.0)
 | F |: p t_double_values(45.654,-67.66)
 | F |: p t_double_values(double_val1,double_val2)
 | F |: p t_double_values(45.654,double_val2)
 | F |: p t_double_values(double_val1,-67.66)
 | F |: p t_string_values(string_val2,string_val1)
 | F |: p t_string_values(string_val1,string_val2)
 | F |: p t_string_values("string 1","string 2")
 | F |: p t_string_values("string 1",string_val2)
 | F |: p t_string_values(string_val1,"string 2")
 | F |: p t_char_array_values(char_array_val2,char_array_val1)
 | F |: p t_char_array_values(char_array_val1,char_array_val2)
 | F |: p t_char_array_values("carray 1","carray 2")
 | F |: p t_char_array_values("carray 1",char_array_val2)
 | F |: p t_char_array_values(char_array_val1,"carray 2")
 | F |: p doubleit(4)
 | F |: p add(4,5)
 | F |: p t_func_values(func_val2,func_val1)
 | F |: p t_func_values(func_val1,func_val2)
 | F |: p t_func_values(add,func_val2)
 | F |: p t_func_values(func_val1,doubleit)
 | F |: p t_call_add(func_val1,3,4)
 | F |: p t_call_add(add,3,4)
 | F |: p t_enum_value1(enumval1)
 | F |: p t_enum_value1(enum_val1)
 | F |: p t_enum_value1(enum_val2)
 | F |: p t_enum_value2(enumval2)
 | F |: p t_enum_value2(enum_val2)
 | F |: p t_enum_value2(enum_val1)
 | F |: p sum_args(1,{2})
 | F |: p sum_args(2,{2,3})
 | F |: p sum_args(3,{2,3,4})
 | F |: p sum_args(4,{2,3,4,5})
 | F |: p sum10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
 | F |: call inferior func with struct - returns char
 | F |: call inferior func with struct - returns short
 | F |: call inferior func with struct - returns int
 | F |: call inferior func with struct - returns long
 | F |: call inferior func with struct - returns float
 | F |: call inferior func with struct - returns double
 | F |: call inferior func with struct - returns char *

gdb.base/interrupt.exp
 | F |: call function when asleep (wrong output)
 | F |: call function a second time

gdb.base/nodebug.exp
 | F |: p/c array_index("abcdef",2)

gdb.base/printcmds.exp
 | F |: p "a string"
 | F |: p "embedded \000 null"
 | F |: p "abcd"[2]
 | F |: p sizeof ("abcdef")
 | F |: ptype "foo"
 | F |: p *"foo"
 | F |: ptype *"foo"
 | F |: p &*"foo"
 | F |: p (char *)"foo"
 | F |: print {'a','b','c'}
 | F |: print {0,1,2}
 | F |: print {(long)0,(long)1,(long)2}
 | F |: print {{0,1,2},{3,4,5}}
 | F |: print {4,5,6}[2]
 | F |: print *&{4,5,6}[1]

gdb.base/ptype.exp
 | F |: ptype "abc"
 | F |: ptype {'a','b','c'}
 | F |: ptype {0,1,2}
 | F |: ptype {(long)0,(long)1,(long)2}
 | F |: ptype {(float)0,(float)1,(float)2}
 | F |: ptype {{0,1,2},{3,4,5}}
 | F |: ptype {4,5,6}[2]
 | F |: ptype *&{4,5,6}[1]

gdb.base/selftest.exp
 | F |: print a string

gdb.base/shlib-call.exp
 | F |: print shr1(1)
 | F |: print shr1(g)
 | F |: print shr1(1)
 | F |: print mainshr1(1) from shlib func
 | F |: print mainshr1(1) from main

gdb.base/signals.exp
 | F |: p func1 () #1 in signals.exp
 | F |: p count #1 in signals.exp
 | F |: next to alarm #2 in signals.exp
 | F |: next to ++count #2 in signals.exp
 | F |: p func1 () #2 in signals.exp
 | F |: continue in signals.exp
 | F |: p count #2 in signals.exp

gdb.base/structs.exp
 | F |: p fun1()
 | F |: p fun2()
 | F |: p fun3()
 | F |: p fun4()
 | F |: p fun5()
 | F |: p fun6()
 | F |: p fun7()
 | F |: p fun8()
 | F |: p fun9()
 | F |: p fun10()
 | F |: p fun11()
 | F |: p fun12()
 | F |: p fun16()
 | F |: p Fun1(foo1)
 | F |: p Fun2(foo2)
 | F |: p Fun3(foo3)
 | F |: p Fun4(foo4)
 | F |: p Fun5(foo5)
 | F |: p Fun6(foo6)
 | F |: p Fun7(foo7)
 | F |: p Fun8(foo8)
 | F |: p Fun9(foo9)
 | F |: p Fun10(foo10)
 | F |: p Fun11(foo11)
 | F |: p Fun12(foo12)
 | F |: p Fun16(foo16)
 | F |: p L1
 | F |: p L2
 | F |: p L3
 | F |: p L4
 | F |: p L5
 | F |: p L6
 | F |: p L7
 | F |: p L8
 | F |: p L9
 | F |: p L10
 | F |: p L11
 | F |: p L12
 | F |: p L16

gdb.base/varargs.exp
 | F |: print find_max1(5,1,2,3,4,5)
 | F |: print find_max1(1,3)
 | F |: print find_max1(10,1,2,3,4,5,6,7,8,29,0)
 | F |: print find_max2(3,1,2,3)
 | F |: print find_max_double(5,1.0,17.0,2.0,3.0,4.0)

gdb.base/watchpoint.exp
 | F |: calling function with watchpoint enabled

gdb.c++/classes.exp
 | F |: base class param->a
 | F |: base class param->x
 | F |: inherited class param->a
 | F |: inherited class param->x
 | F |: base class param.a
 | F |: base class param.x
 | F |: inherited class param.a
 | F |: inherited class param.x

gdb.c++/demangle.exp
 | F |: gnu: __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator

gdb.c++/namespace.exp
 | F |: print 'AAA::xyzq'('x')
 | F |: print 'BBB::CCC::xyzq'('x')

gdb.c++/templates.exp
 | F |: print t5i.value()


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: gdb linux testing regressions (compared to 7/24)
  2000-08-10 17:56 gdb linux testing regressions (compared to 7/24) Jimmy Guo
@ 2000-08-10 18:42 ` Daniel Berlin
  2000-08-10 22:02 ` Mark Kettenis
  1 sibling, 0 replies; 4+ messages in thread
From: Daniel Berlin @ 2000-08-10 18:42 UTC (permalink / raw)
  To: Jimmy Guo; +Cc: gdb

Jimmy Guo <guo@cup.hp.com> writes:

> FYI:
> 
> Latest gdb source has a test regression of 200+ as compared to the 7/24
> tree, on i686-pc-linux-gnu.  For example, gdb.base/break.exp:
> ...
> print marker2(99)
> 
> read_register_bytes:  Couldn't update register 16.
> 
> (gdb) FAIL: gdb.base/break.exp: hit breakpoint on called function
> ...
> 
> Regression info is provided below ...
> 

...

> gdb.c++/classes.exp
>  | F |: base class param->a
>  | F |: base class param->x
>  | F |: inherited class param->a
>  | F |: inherited class param->x
>  | F |: base class param.a
>  | F |: base class param.x
>  | F |: inherited class param.a
>  | F |: inherited class param.x
> 

Known.

But it's actually

FAIL: base class (&param)->a
FAIL: base class (&param)->x
FAIL: inherited class (&param)->a
FAIL: inherited class (&param)->x
FAIL: continue to enums2


now.

> gdb.c++/demangle.exp
>  | F |: gnu:
>__thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator


I claim this can't be unambiguously demangled, as it has more than one
legal demangling.

This will have to be marked XFAIL.

I'll add more tests that break the demangler before i fixed it, to
show this is worth it (I know it's worth it. Before, customers
complained about things not being able to be demangled. Now, they
don't).



> 
> gdb.c++/namespace.exp
>  | F |: print 'AAA::xyzq'('x')
>  | F |: print 'BBB::CCC::xyzq'('x')
> 

Unreproducable.


I get "FAIL: info func xyzq" instead, but it's clearly not failing.
info func xyzq^M
All functions matching regular expression "xyzq":^M
^M  
File ./gdb.c++/namespace.cc:^M
int AAA::A_xyzq(int);^M
char AAA::xyzq(char);^M
int BBB::B_xyzq(int);^M
char BBB::CCC::xyzq(char);^M
char BBB::Class::xyzq(char);^M
char BBB::xyzq(char);^M

All of these properly match xyzq.


> gdb.c++/templates.exp
>  | F |: print t5i.value()

I can only reproduce under stabs
It looks like a name gets demangled properly the firsttime, when we
print it the second, it's garbage.

This tells me it's a method stub problem, and i'm on it.

Under dwarf2 i get no failures at all.

--Dan


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: gdb linux testing regressions (compared to 7/24)
  2000-08-10 17:56 gdb linux testing regressions (compared to 7/24) Jimmy Guo
  2000-08-10 18:42 ` Daniel Berlin
@ 2000-08-10 22:02 ` Mark Kettenis
  1 sibling, 0 replies; 4+ messages in thread
From: Mark Kettenis @ 2000-08-10 22:02 UTC (permalink / raw)
  To: guo; +Cc: gdb

   Date: Thu, 10 Aug 2000 17:56:37 -0700 (PDT)
   From: Jimmy Guo <guo@cup.hp.com>

   FYI:

   Latest gdb source has a test regression of 200+ as compared to the 7/24
   tree, on i686-pc-linux-gnu.  For example, gdb.base/break.exp:
   ...
   print marker2(99)

   read_register_bytes:  Couldn't update register 16.

   (gdb) FAIL: gdb.base/break.exp: hit breakpoint on called function
   ...

Your GDB is obviously having trouble getting at the floating point
registers, and it is more than likely that this is related to the
stuff I checked in yesterday.  However, I don't see directly what
could be causing it.  On my machine everything works just fine.

Can you give a bit more detail about your system (Linux version, libc
version)?  And can you tell me whether HAVE_PTRACE_GETREGS and/or
HAVE_PTRACE_GETFPXREGS are defined (by configure) in config.h?

Mark
From aj@suse.de Fri Aug 11 02:59:00 2000
From: Andreas Jaeger <aj@suse.de>
To: gdb@sourceware.cygnus.com
Subject: gdb/regcache.c:211: undefined reference to `GET_SAVED_REGISTER'
Date: Fri, 11 Aug 2000 02:59:00 -0000
Message-id: <u8k8dof7ah.fsf@gromit.rhein-neckar.de>
X-SW-Source: 2000-08/msg00054.html
Content-length: 1424

Building the current gdb from CVS on i686 with glibc 2.1.3, Linux
Kernel 2.4.0-test5 I got the following failure:

gcc -g -O2         -o gdb main.o libgdb.a    ../bfd/libbfd.a ../readline/libreadline.a ../opcodes/libopcodes.a  ../libiberty/libiberty.a -lncurses    ../libgui/src/libgui.a -L/builds/sourceware-src/build-gdb/itcl/itcl/unix -litcl3.0 -L/builds/sourceware-src/build-gdb/itcl/itk/unix -litk3.0 -L/builds/sourceware-src/build-gdb/tix/unix/tk8.0 -ltix4.1.8.0 -L/builds/sourceware-src/build-gdb/tk/unix -ltk8.0 -L/builds/sourceware-src/build-gdb/tcl/unix -ltcl8.0   -L/usr/X11R6/lib -lX11 -ldl  -lieee -lm -lm  ../libiberty/libiberty.a  -ldl -rdynamic
libgdb.a(regcache.o): In function `get_saved_register':
/cvs/gdb-ln/gdb/regcache.c:211: undefined reference to `GET_SAVED_REGISTER'
collect2: ld returned 1 exit status

The problem is this define in gdbarch.h:
#if GDB_MULTI_ARCH
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (GET_SAVED_REGISTER)
#define GET_SAVED_REGISTER(raw_buffer, optimized, addrp, frame, regnum, lval) (gdbarch_get_saved_register (current_gdbarch, raw_buffer, optimized, addrp, frame, regnum, lval))
#endif
#endif

By default (!GDB_MULTI_ARCH && !GET_SAVED_REGISTER) no replacement is
defined.

I'm not sure what the right fix is, gdbarch.h seems to be a generated
file.

Andreas
-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj
From guo@cup.hp.com Fri Aug 11 10:14:00 2000
From: Jimmy Guo <guo@cup.hp.com>
To: Mark Kettenis <kettenis@wins.uva.nl>
Cc: gdb@sourceware.cygnus.com
Subject: Re: gdb linux testing regressions (compared to 7/24)
Date: Fri, 11 Aug 2000 10:14:00 -0000
Message-id: <Pine.LNX.4.10.10008111010260.30697-100000@hpcll168.cup.hp.com>
References: <200008110502.e7B52CX03890@delius.kettenis.local>
X-SW-Source: 2000-08/msg00055.html
Content-length: 771

>   read_register_bytes:  Couldn't update register 16.
>
>   (gdb) FAIL: gdb.base/break.exp: hit breakpoint on called function
>   ...
>
>Your GDB is obviously having trouble getting at the floating point
>registers, and it is more than likely that this is related to the
>stuff I checked in yesterday.  However, I don't see directly what
>could be causing it.  On my machine everything works just fine.
>
>Can you give a bit more detail about your system (Linux version, libc
>version)?  And can you tell me whether HAVE_PTRACE_GETREGS and/or
>HAVE_PTRACE_GETFPXREGS are defined (by configure) in config.h?

I'm using redhat 6.1.  gcc egcs-2.91.66.  How to find out versions for
others like libc?  HAVE_PTRACE_GETREGS is defined,
HAVE_PTRACE_GETFPXREGS not.  

- Jimmy


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: gdb linux testing regressions (compared to 7/24)
       [not found] <Pine.LNX.4.10.10008111010260.30697-100000@hpcll168.cup.hp.com>
@ 2000-08-11 11:04 ` Mark Kettenis
  0 siblings, 0 replies; 4+ messages in thread
From: Mark Kettenis @ 2000-08-11 11:04 UTC (permalink / raw)
  To: guo; +Cc: gdb

   Date: Fri, 11 Aug 2000 10:13:08 -0700 (PDT)
   From: Jimmy Guo <guo@cup.hp.com>

   I'm using redhat 6.1.  gcc egcs-2.91.66.  How to find out versions for
   others like libc?  HAVE_PTRACE_GETREGS is defined,
   HAVE_PTRACE_GETFPXREGS not.  

I probably should have asked for the Linux *kernel* version (uname
-a).  If you're running Linux 2.0.x, the failures you're seeing would
be pretty normal.

You can get at the libc version by executing /lib/libc.so.6, but since
you say that HAVE_PTRACE_GETREGS is defined, I'm not really interested
in that information anymore :-).

Mark


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2000-08-11 11:04 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-08-10 17:56 gdb linux testing regressions (compared to 7/24) Jimmy Guo
2000-08-10 18:42 ` Daniel Berlin
2000-08-10 22:02 ` Mark Kettenis
     [not found] <Pine.LNX.4.10.10008111010260.30697-100000@hpcll168.cup.hp.com>
2000-08-11 11:04 ` Mark Kettenis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox