From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27582 invoked by alias); 27 Feb 2002 21:43:27 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 27522 invoked from network); 27 Feb 2002 21:43:25 -0000 Received: from unknown (HELO zwingli.cygnus.com) (208.245.165.35) by sources.redhat.com with SMTP; 27 Feb 2002 21:43:25 -0000 Received: by zwingli.cygnus.com (Postfix, from userid 442) id B4BB05E9DE; Wed, 27 Feb 2002 16:43:23 -0500 (EST) To: Mark Kettenis Cc: fnf@redhat.com, gdb-patches@sources.redhat.com Subject: Re: [RFC] Gdb line table implementation tweak References: <200202130028.g1D0StM11730@fred.ninemoons.com> <86y9hjnamk.fsf@elgar.kettenis.dyndns.org> From: Jim Blandy Date: Wed, 27 Feb 2002 13:43:00 -0000 In-Reply-To: <86y9hjnamk.fsf@elgar.kettenis.dyndns.org> Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-02/txt/msg00723.txt.bz2 Mark Kettenis writes: > Unfortunately, this patch turns quite a few PASSes into FAILS on > i386-unknown-freebsd4.4. Here's a diff of the test summary before and > after applying the patch. Are we sure this patch is an improvement? This patch addresses a lot of long-standing problems in GDB's handling of C++ link-once sections; I'm pretty sure it's a step forward, overall. I think we should put a good effort into fixing up the patch before we consider backing it out. Fred, could you look into these failures? > > --- gdb.sum.orig Sat Feb 23 22:21:50 2002 > +++ gdb.sum Sat Feb 23 22:35:10 2002 > @@ -1,4 +1,4 @@ > -Test Run By kettenis on Sat Feb 23 22:14:32 2002 > +Test Run By kettenis on Sat Feb 23 22:27:38 2002 > Native configuration is i386-unknown-freebsd4.4 > > === gdb tests === > @@ -358,21 +358,21 @@ > PASS: gdb.base/call-ar-st.exp: continuing to breakpoint 1220, pattern 8 > PASS: gdb.base/call-ar-st.exp: continuing to breakpoint 1220, pattern 9 > PASS: gdb.base/call-ar-st.exp: continuing to breakpoint 1220, pattern 10 + sentinel > -PASS: gdb.base/call-ar-st.exp: step inside print_all_arrays > -PASS: gdb.base/call-ar-st.exp: next over print_int_array in print-all_arrays > -PASS: gdb.base/call-ar-st.exp: print print_double_array(array_d), pattern 1 > -PASS: gdb.base/call-ar-st.exp: print print_double_array(array_d), pattern 2 > -PASS: gdb.base/call-ar-st.exp: print print_double_array(array_d), pattern 3 > -PASS: gdb.base/call-ar-st.exp: print print_double_array(array_d), pattern 4 > -PASS: gdb.base/call-ar-st.exp: print print_double_array(array_d), pattern 5 + sentinel > +FAIL: gdb.base/call-ar-st.exp: step inside print_all_arrays > +FAIL: gdb.base/call-ar-st.exp: next over print_int_array in print-all_arrays > +FAIL: gdb.base/call-ar-st.exp: print print_double_array(array_d), pattern 1 > +UNRESOLVED: gdb.base/call-ar-st.exp: print print_double_array(array_d), pattern 2 > +UNRESOLVED: gdb.base/call-ar-st.exp: print print_double_array(array_d), pattern 3 > +UNRESOLVED: gdb.base/call-ar-st.exp: print print_double_array(array_d), pattern 4 > +UNRESOLVED: gdb.base/call-ar-st.exp: print print_double_array(array_d), pattern 5 + sentinel > PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1236 > -PASS: gdb.base/call-ar-st.exp: continuing to 1236, pattern 1 > -PASS: gdb.base/call-ar-st.exp: continuing to 1236, pattern 2 > -PASS: gdb.base/call-ar-st.exp: continuing to 1236, pattern 3 > -PASS: gdb.base/call-ar-st.exp: continuing to 1236, pattern 4 > -PASS: gdb.base/call-ar-st.exp: continuing to 1236, pattern 5 > -PASS: gdb.base/call-ar-st.exp: continuing to 1236, pattern 6 > -PASS: gdb.base/call-ar-st.exp: continuing to 1236, pattern 7 + sentinel > +FAIL: gdb.base/call-ar-st.exp: continuing to 1236, pattern 1 > +UNRESOLVED: gdb.base/call-ar-st.exp: continuing to 1236, pattern 2 > +UNRESOLVED: gdb.base/call-ar-st.exp: continuing to 1236, pattern 3 > +UNRESOLVED: gdb.base/call-ar-st.exp: continuing to 1236, pattern 4 > +UNRESOLVED: gdb.base/call-ar-st.exp: continuing to 1236, pattern 5 > +UNRESOLVED: gdb.base/call-ar-st.exp: continuing to 1236, pattern 6 > +UNRESOLVED: gdb.base/call-ar-st.exp: continuing to 1236, pattern 7 + sentinel > PASS: gdb.base/call-ar-st.exp: print sum_array_print(10, *list1, *list2, *list3, *list4) > PASS: gdb.base/call-ar-st.exp: next to 1237 > PASS: gdb.base/call-ar-st.exp: print print_array_rep(*list1, *list2, *list3) > @@ -461,7 +461,7 @@ > PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1300 > PASS: gdb.base/call-ar-st.exp: continue to 1300 > FAIL: gdb.base/call-ar-st.exp: step into init_bit_flags_combo > -PASS: gdb.base/call-ar-st.exp: print print_bit_flags_combo from init_bit_flags_combo > +FAIL: gdb.base/call-ar-st.exp: print print_bit_flags_combo from init_bit_flags_combo > PASS: gdb.base/call-ar-st.exp: tbreakpoint line 1305 > PASS: gdb.base/call-ar-st.exp: continue to 1305 > PASS: gdb.base/call-ar-st.exp: print print_long_arg_list, pattern 1 > @@ -1385,18 +1385,18 @@ > PASS: gdb.base/display.exp: disab 3 > PASS: gdb.base/display.exp: watch off > PASS: gdb.base/display.exp: finish > -PASS: gdb.base/display.exp: step > +FAIL: gdb.base/display.exp: step > PASS: gdb.base/display.exp: tbreak 37 > -PASS: gdb.base/display.exp: cont > +FAIL: gdb.base/display.exp: cont: the program exited > PASS: gdb.base/display.exp: printf > PASS: gdb.base/display.exp: printf %d > PASS: gdb.base/display.exp: printf "%d > -PASS: gdb.base/display.exp: printf "%d%d",i > +FAIL: gdb.base/display.exp: printf "%d%d",i > PASS: gdb.base/display.exp: printf "\\!\a\f\r\t\v\b\n" > PASS: gdb.base/display.exp: re-set term > PASS: gdb.base/display.exp: printf "\w" > PASS: gdb.base/display.exp: printf "%d" j > -PASS: gdb.base/display.exp: print/r j > +FAIL: gdb.base/display.exp: print/r j > PASS: gdb.base/display.exp: debug test output > PASS: gdb.base/display.exp: x/0 j > PASS: gdb.base/display.exp: print/0 j > @@ -1404,7 +1404,7 @@ > PASS: gdb.base/display.exp: no i > PASS: gdb.base/display.exp: print/a &sum > PASS: gdb.base/display.exp: print/a main+4 > -PASS: gdb.base/display.exp: print/a $pc > +FAIL: gdb.base/display.exp: print/a $pc > PASS: gdb.base/display.exp: print/a &&j > Running ../../../../src/src/gdb/testsuite/gdb.base/echo.exp ... > PASS: gdb.base/echo.exp: Echo test > @@ -2107,9 +2107,9 @@ > PASS: gdb.base/funcargs.exp: finish from indirectly called function > FAIL: gdb.base/funcargs.exp: stepping into indirectly called function > PASS: gdb.base/funcargs.exp: finish from marker_call_with_trampolines > -PASS: gdb.base/funcargs.exp: stepping into function called with trampolines > -PASS: gdb.base/funcargs.exp: backtrace through call with trampolines > -PASS: gdb.base/funcargs.exp: stepping back to main from function called with trampolines > +FAIL: gdb.base/funcargs.exp: stepping into function called with trampolines > +FAIL: gdb.base/funcargs.exp: backtrace through call with trampolines > +FAIL: gdb.base/funcargs.exp: stepping back to main from function called with trampolines > Running ../../../../src/src/gdb/testsuite/gdb.base/gcore.exp ... > PASS: gdb.base/gcore.exp: help gcore > PASS: gdb.base/gcore.exp: set breakpoint at terminal_func > @@ -2507,14 +2507,15 @@ > FAIL: gdb.base/list.exp: list list0.c:main > FAIL: gdb.base/list.exp: list list0.c:unused > FAIL: gdb.base/list.exp: list list0.h:foo > -PASS: gdb.base/list.exp: list filename:function (2 tests) > +FAIL: gdb.base/list.exp: list list1.c:unused > +PASS: gdb.base/list.exp: list filename:function (1 tests) > XFAIL: gdb.base/list.exp: list filename:function; wrong filename rejected > PASS: gdb.base/list.exp: list filename:function; nonexistant file > PASS: gdb.base/list.exp: list filename:function; nonexistant function > PASS: gdb.base/list.exp: set listsize 4 > FAIL: gdb.base/list.exp: list long_line > PASS: gdb.base/list.exp: search 4321 > -PASS: gdb.base/list.exp: search 6789 > +FAIL: gdb.base/list.exp: search 6789 > PASS: gdb.base/list.exp: search extremely long line (> 5000 chars) > Running ../../../../src/src/gdb/testsuite/gdb.base/logical.exp ... > PASS: gdb.base/logical.exp: set variable x=0 > @@ -3472,7 +3473,8 @@ > PASS: gdb.base/ptype.exp: ptype named enumeration > PASS: gdb.base/ptype.exp: ptype unnamed typedef'd enumeration > PASS: gdb.base/ptype.exp: list main > -PASS: gdb.base/ptype.exp: whatis unnamed typedef'd enum (compiler bug in IBM's xlc) > +ERROR: get_debug_format used when no current source file > +UNRESOLVED: gdb.base/ptype.exp: whatis unnamed typedef'd enum (compiler bug in IBM's xlc) > PASS: gdb.base/ptype.exp: printing typedef'd struct > PASS: gdb.base/ptype.exp: printing typedef'd union > PASS: gdb.base/ptype.exp: ptype named typedef'd enumf'd enum > @@ -3490,14 +3492,15 @@ > PASS: gdb.base/ptype.exp: ptype nested structure #2 > PASS: gdb.base/ptype.exp: ptype inner int > PASS: gdb.base/ptype.exp: ptype nested union > -XFAIL: gdb.base/ptype.exp: ptype func_type (compiler doesn't emit prototyped types) > +ERROR: get_debug_format used when no current source file > +UNRESOLVED: gdb.base/ptype.exp: ptype func_type (compiler doesn't emit prototyped types) > PASS: gdb.base/ptype.exp: ptype old_fptr > -XFAIL: gdb.base/ptype.exp: ptype new_fptr (compiler doesn't emit prototyped types) > -XFAIL: gdb.base/ptype.exp: ptype fptr (compiler doesn't emit prototyped types) > -XFAIL: gdb.base/ptype.exp: ptype fptr2 (compiler doesn't emit prototyped types) > -XFAIL: gdb.base/ptype.exp: ptype xptr (compiler doesn't emit prototyped types) > -XFAIL: gdb.base/ptype.exp: ptype ffptr (compiler doesn't emit prototyped types) > -XFAIL: gdb.base/ptype.exp: ptype fffptr (compiler doesn't emit prototyped types) > +FAIL: gdb.base/ptype.exp: ptype new_fptr (compiler doesn't emit prototyped types) > +FAIL: gdb.base/ptype.exp: ptype fptr (compiler doesn't emit prototyped types) > +FAIL: gdb.base/ptype.exp: ptype fptr2 (compiler doesn't emit prototyped types) > +FAIL: gdb.base/ptype.exp: ptype xptr (compiler doesn't emit prototyped types) > +FAIL: gdb.base/ptype.exp: ptype ffptr (compiler doesn't emit prototyped types) > +FAIL: gdb.base/ptype.exp: ptype fffptr (compiler doesn't emit prototyped types) > PASS: gdb.base/ptype.exp: ptype "abc" > PASS: gdb.base/ptype.exp: ptype {'a','b','c'} > PASS: gdb.base/ptype.exp: ptype {0,1,2} > @@ -4190,7 +4193,7 @@ > PASS: gdb.base/shlib-call.exp: step inside shr2 (shlib func) > PASS: gdb.base/shlib-call.exp: step out of shr2 to main > PASS: gdb.base/shlib-call.exp: print mainshr1(1) > -PASS: gdb.base/shlib-call.exp: step into mainshr1 > +FAIL: gdb.base/shlib-call.exp: step into mainshr1 > PASS: gdb.base/shlib-call.exp: set bp in shared library > PASS: gdb.base/shlib-call.exp: run to bp in shared library > PASS: gdb.base/shlib-call.exp: cont > @@ -4696,17 +4699,17 @@ > PASS: gdb.base/step-line.exp: next over dummy 1 > PASS: gdb.base/step-line.exp: next to dummy 2 > PASS: gdb.base/step-line.exp: next over dummy 2 > -PASS: gdb.base/step-line.exp: step into f2 > -PASS: gdb.base/step-line.exp: next over dummy 4 > -PASS: gdb.base/step-line.exp: next to dummy 5 > -PASS: gdb.base/step-line.exp: next to dummy 6 > -PASS: gdb.base/step-line.exp: next over dummy 6 > -PASS: gdb.base/step-line.exp: next to dummy 7 > -PASS: gdb.base/step-line.exp: next to dummy 8 > -PASS: gdb.base/step-line.exp: next over dummy 8 > -PASS: gdb.base/step-line.exp: next to dummy 9 > -PASS: gdb.base/step-line.exp: next to dummy 10 > -PASS: gdb.base/step-line.exp: next over dummy 10 > +FAIL: gdb.base/step-line.exp: step into f2 > +FAIL: gdb.base/step-line.exp: next over dummy 4 > +FAIL: gdb.base/step-line.exp: next to dummy 5 > +FAIL: gdb.base/step-line.exp: next to dummy 6 > +FAIL: gdb.base/step-line.exp: next over dummy 6 > +FAIL: gdb.base/step-line.exp: next to dummy 7 > +FAIL: gdb.base/step-line.exp: next to dummy 8 > +FAIL: gdb.base/step-line.exp: next over dummy 8 > +FAIL: gdb.base/step-line.exp: next to dummy 9 > +FAIL: gdb.base/step-line.exp: next to dummy 10 > +FAIL: gdb.base/step-line.exp: next over dummy 10 > Running ../../../../src/src/gdb/testsuite/gdb.base/step-test.exp ... > PASS: gdb.base/step-test.exp: next 1 > PASS: gdb.base/step-test.exp: step 1 > @@ -4723,7 +4726,7 @@ > PASS: gdb.base/step-test.exp: nexti over function > PASS: gdb.base/step-test.exp: set breakpoint at call to large_struct_by_value > PASS: gdb.base/step-test.exp: run to pass large struct > -PASS: gdb.base/step-test.exp: large struct by value > +FAIL: gdb.base/step-test.exp: large struct by value > PASS: gdb.base/step-test.exp: continue until exit at step-test.exp > Running ../../../../src/src/gdb/testsuite/gdb.base/structs.exp ... > PASS: gdb.base/structs.exp: set print sevenbit-strings > @@ -6354,9 +6357,9 @@ > PASS: gdb.c++/overload.exp: print call overloaded func float arg > PASS: gdb.c++/overload.exp: print call overloaded func double arg > FAIL: gdb.c++/overload.exp: list overloaded function with no args > -PASS: gdb.c++/overload.exp: list overloaded function with int arg > -PASS: gdb.c++/overload.exp: list overloaded function with function ptr args > -PASS: gdb.c++/overload.exp: list overloaded function with function ptr args - quotes around argument > +FAIL: gdb.c++/overload.exp: list overloaded function with int arg > +FAIL: gdb.c++/overload.exp: list overloaded function with function ptr args > +FAIL: gdb.c++/overload.exp: list overloaded function with function ptr args - quotes around argument > Running ../../../../src/src/gdb/testsuite/gdb.c++/ovldbreak.exp ... > PASS: gdb.c++/ovldbreak.exp: bp menu for foo::overload1arg choice 12 > PASS: gdb.c++/ovldbreak.exp: set bp 2 on foo::overload1arg 12 line 111 > @@ -7108,9 +7111,9 @@ > PASS: gdb.mi/mi-simplerun.exp: list of breakpoints, 16 disabled > PASS: gdb.mi/mi-simplerun.exp: run to main > PASS: gdb.mi/mi-simplerun.exp: next at main > -PASS: gdb.mi/mi-simplerun.exp: step at main > -PASS: gdb.mi/mi-simplerun.exp: step to callee4 > -PASS: gdb.mi/mi-simplerun.exp: exec-finish > +FAIL: gdb.mi/mi-simplerun.exp: step at main (unknown output after running) > +FAIL: gdb.mi/mi-simplerun.exp: step to callee4 (unknown output after running) > +FAIL: gdb.mi/mi-simplerun.exp: exec-finish (unknown output after running) > PASS: gdb.mi/mi-simplerun.exp: continue to end > Running ../../../../src/src/gdb/testsuite/gdb.mi/mi-stack.exp ... > PASS: gdb.mi/mi-stack.exp: break-insert operation > @@ -7638,9 +7641,9 @@ > PASS: gdb.mi/mi0-simplerun.exp: list of breakpoints, 16 disabled > PASS: gdb.mi/mi0-simplerun.exp: run to main > PASS: gdb.mi/mi0-simplerun.exp: next at main > -PASS: gdb.mi/mi0-simplerun.exp: step at main > -PASS: gdb.mi/mi0-simplerun.exp: step to callee4 > -PASS: gdb.mi/mi0-simplerun.exp: exec-finish > +FAIL: gdb.mi/mi0-simplerun.exp: step at main (unknown output after running) > +FAIL: gdb.mi/mi0-simplerun.exp: step to callee4 (unknown output after running) > +FAIL: gdb.mi/mi0-simplerun.exp: exec-finish (unknown output after running) > PASS: gdb.mi/mi0-simplerun.exp: continue to end > Running ../../../../src/src/gdb/testsuite/gdb.mi/mi0-stack.exp ... > PASS: gdb.mi/mi0-stack.exp: break-insert operation > @@ -8239,11 +8242,11 @@ > > === gdb Summary === > > -# of expected passes 7561 > -# of unexpected failures 152 > +# of expected passes 7514 > +# of unexpected failures 195 > # of unexpected successes 12 > -# of expected failures 156 > -# of unresolved testcases 100 > +# of expected failures 149 > +# of unresolved testcases 112 > # of untested testcases 1 > # of unsupported tests 3 > /usr/home/kettenis/obj/gdb/gdb/testsuite/../../gdb/gdb version 2002-02-23-cvs -nx