This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] Gdb line table implementation tweak



Mark Kettenis <kettenis@kettenis.dyndns.org> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]