From: Thomas Schwinge <thomas@codesourcery.com>
To: Kevin Buettner <kevinb@redhat.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH] [SH] Prologue skipping if there is none
Date: Tue, 21 Feb 2012 15:23:00 -0000 [thread overview]
Message-ID: <8762f09stp.fsf@schwinge.name> (raw)
In-Reply-To: <20120216182544.36b41a1b@mesquite.lan>
[-- Attachment #1: Type: text/plain, Size: 33780 bytes --]
Hi Kevin!
On Thu, 16 Feb 2012 18:25:44 -0700, Kevin Buettner <kevinb@redhat.com> wrote:
> On Thu, 16 Feb 2012 17:32:18 +0100
> Thomas Schwinge <thomas@codesourcery.com> wrote:
>
> > I now have (on a SH7785-based board). My patch fixes a few more failures
> > than yours. ;-P
>
> This will require more study and discussion then. I tested against
> the simulator using the default multilib. I compared results using
> each of our patches to an unpatched sh-tdep.c.
I'm now comparing your findings to mine, based on my 2012-02-16 test
results.
> Here are the FAILs that my patch fixed. There are 246 of them.
> FAIL: gdb.arch/gdb1291.exp: set breakpoint
> FAIL: gdb.arch/gdb1291.exp: get to sub1 (the program exited)
> FAIL: gdb.arch/gdb1291.exp: backtrace with local variable less than or equal to 256 bytes
> FAIL: gdb.arch/gdb1291.exp: set breakpoint
> FAIL: gdb.arch/gdb1291.exp: get to sub2 (the program is no longer running)
> FAIL: gdb.arch/gdb1291.exp: backtrace with local variable larger than 256 bytes
> FAIL: gdb.arch/gdb1431.exp: get to sub1
> FAIL: gdb.arch/gdb1431.exp: advance returns from sub1 frame
> FAIL: gdb.arch/gdb1431.exp: get to sub2
Are you sure these are releated to the patch you've sent? For me, these
failures look the same with and without your patch; and that doesn't very
much look like a prologue analysis issue:
Running /scratch/tschwing/FM_sh-linux-gnu/src/gdb-mainline/gdb/testsuite/gdb.arch/gdb1291.exp ...
gdb compile failed, /scratch/tschwing/FM_sh-linux-gnu/install/bin/../sh-linux-gnu/libc/usr/lib/crt1.o: In function `L_main':
(.text+0x1c): undefined reference to `main'
/tmp/ccmGUZOl.o: In function `_main':
gdb1291.c:(.text+0x2c): undefined reference to `_printf'
collect2: error: ld returned 1 exit status
UNTESTED: gdb.arch/gdb1291.exp: gdb1291.exp
> FAIL: gdb.base/arrayidx.exp: Print array with array-indexes off
> FAIL: gdb.base/arrayidx.exp: Print array with array-indexes on
> FAIL: gdb.base/break-always.exp: continue to breakpoint: bar
Ack.
> FAIL: gdb.base/break-inline.exp: start
Again, (at least in my case) not related to the patch we're discussing:
Running /scratch/tschwing/FM_sh-linux-gnu/src/gdb-mainline/gdb/testsuite/gdb.base/break-inline.exp ...
ERROR: tcl error sourcing /scratch/tschwing/FM_sh-linux-gnu/src/gdb-mainline/gdb/testsuite/gdb.base/break-inline.exp.
ERROR: gdbserver does not support start without extended-remote
> FAIL: gdb.base/break.exp: next over recursive call
> FAIL: gdb.base/break.exp: backtrace from factorial(5.1)
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tc
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tc
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-ts
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-ts
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-ti
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-ti
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tl
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tl
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tll
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tll
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tf
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tf
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-td
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-td
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tld
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tld
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-te
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-te
> FAIL: gdb.base/chng-syms.exp: running to stop_here first time
> FAIL: gdb.base/chng-syms.exp: continue until exit at breakpoint first time through (the program is no longer running)
> FAIL: gdb.base/gdb11531.exp: watchpoint variable triggers at next
Ack.
At this point, your patch also causes this progression:
-FAIL: gdb.base/gdb1250.exp: setting breakpoint at abort
+PASS: gdb.base/gdb1250.exp: backtrace from abort
> FAIL: gdb.base/longjmp.exp: next over setjmp (1)
> FAIL: gdb.base/longjmp.exp: next to longjmp (1)
> FAIL: gdb.base/longjmp.exp: next over setjmp (2)
> FAIL: gdb.base/nodebug.exp: backtrace from inner in nodebug.exp
> FAIL: gdb.base/nodebug.exp: backtrace from middle in nodebug.exp
These still FAIL for me with your patch.
> FAIL: gdb.base/pc-fp.exp: get hexadecimal valueof "$fp" (timeout)
> FAIL: gdb.base/pc-fp.exp: display/i $pc
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/reread.exp: breakpoint foo in first file
> FAIL: gdb.base/reread.exp: run to foo()
Ack.
> FAIL: gdb.base/return-nodebug.exp: signed-char: return from function with no debug info with a cast
> FAIL: gdb.base/return-nodebug.exp: signed-char: full width of the returned result
> FAIL: gdb.base/return-nodebug.exp: short: return from function with no debug info with a cast
> FAIL: gdb.base/return-nodebug.exp: short: full width of the returned result
> FAIL: gdb.base/return-nodebug.exp: int: return from function with no debug info with a cast
> FAIL: gdb.base/return-nodebug.exp: int: full width of the returned result
> FAIL: gdb.base/return-nodebug.exp: long: return from function with no debug info with a cast
> FAIL: gdb.base/return-nodebug.exp: long: full width of the returned result
> FAIL: gdb.base/return-nodebug.exp: long-long: return from function with no debug info with a cast
> FAIL: gdb.base/return-nodebug.exp: long-long: full width of the returned result
These still FAIL for me with your patch.
> FAIL: gdb.base/return.exp: continue to return of -5
> FAIL: gdb.base/return.exp: continue to return of -5.0
> FAIL: gdb.base/return2.exp: void function returned successfully
> FAIL: gdb.base/scope.exp: print funclocal at bar
> FAIL: gdb.base/scope.exp: print funclocal_bss at bar
Ack.
> FAIL: gdb.base/sepdebug.exp: next over recursive call
> FAIL: gdb.base/sepdebug.exp: backtrace from factorial(5.1)
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/skip.exp: step after deleting 1 (3)
> FAIL: gdb.base/skip.exp: step after disabling 3 (5)
> FAIL: gdb.base/skip.exp: step after enable 3 (3)
> FAIL: gdb.base/step-resume-infcall.exp: step
> FAIL: gdb.base/step-test.exp: step into
Ack.
> FAIL: gdb.base/step-test.exp: large struct by value
This one still FAILs for me with your patch.
> FAIL: gdb.base/store.exp: var struct 2 u; next to add_struct_2 call
> FAIL: gdb.base/store.exp: var struct 2 u; print old u, expecting {s = \{0, 0}}
> FAIL: gdb.base/store.exp: var struct 2 u; set u to s_2
> FAIL: gdb.base/store.exp: var struct 2 u; print new u, expecting {s = \{1, 2}}
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/store.exp: var struct 3 u; next to add_struct_3 call
> FAIL: gdb.base/store.exp: var struct 3 u; print old u, expecting {s = \{0, 0, 0}}
> FAIL: gdb.base/store.exp: var struct 3 u; set u to s_3
> FAIL: gdb.base/store.exp: var struct 3 u; print new u, expecting {s = \{1, 2, 3}}
These still FAIL for me with your patch.
> FAIL: gdb.base/store.exp: var struct 4 u; next to add_struct_4 call
> FAIL: gdb.base/store.exp: var struct 4 u; print old u, expecting {s = \{0, 0, 0, 0}}
> FAIL: gdb.base/store.exp: var struct 4 u; set u to s_4
> FAIL: gdb.base/store.exp: var struct 4 u; print new u, expecting {s = \{1, 2, 3, 4}}
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tc
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tc
Ack.
> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-tc
This one still FAILs for me with your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc
> 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
> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-tc
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/structs.exp: return foo<n>; return 3 structs-tc
This one still FAILs for me with your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 3 structs-tc
> 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
> FAIL: gdb.base/structs.exp: value foo<n> finished; return 3 structs-tc
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/structs.exp: return foo<n>; return 4 structs-tc
This one still FAILs for me with your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 4 structs-tc
> 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
> FAIL: gdb.base/structs.exp: value foo<n> finished; return 4 structs-tc
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/structs.exp: return foo<n>; return 5 structs-tc
This one still FAILs for me with your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 5 structs-tc
> 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
> FAIL: gdb.base/structs.exp: value foo<n> finished; return 5 structs-tc
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/structs.exp: return foo<n>; return 6 structs-tc
This one still FAILs for me with your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 6 structs-tc
> 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
> FAIL: gdb.base/structs.exp: value foo<n> finished; return 6 structs-tc
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/structs.exp: return foo<n>; return 7 structs-tc
This one still FAILs for me with your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 7 structs-tc
> 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
> FAIL: gdb.base/structs.exp: value foo<n> finished; return 7 structs-tc
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/structs.exp: return foo<n>; return 8 structs-tc
This one still FAILs for me with your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 8 structs-tc
> 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
> FAIL: gdb.base/structs.exp: value foo<n> finished; return 8 structs-tc
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-ts
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-ts
Ack.
> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-ts
This one still FAILs for me with your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ts
> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ts
> FAIL: gdb.base/structs.exp: finish foo<n>; return 2 structs-ts
> FAIL: gdb.base/structs.exp: value foo<n> finished; return 2 structs-ts
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/structs.exp: return foo<n>; return 3 structs-ts
This one still FAILs for me with your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 3 structs-ts
> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 3 structs-ts
> FAIL: gdb.base/structs.exp: finish foo<n>; return 3 structs-ts
> FAIL: gdb.base/structs.exp: value foo<n> finished; return 3 structs-ts
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/structs.exp: return foo<n>; return 4 structs-ts
This one still FAILs for me with your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 4 structs-ts
> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 4 structs-ts
> FAIL: gdb.base/structs.exp: finish foo<n>; return 4 structs-ts
> FAIL: gdb.base/structs.exp: value foo<n> finished; return 4 structs-ts
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-ti
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-ti
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ti
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ti
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tl
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tl
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tl
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tl
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tll
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tll
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tf
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tf
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-td
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-td
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tld
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tld
Ack.
> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-ts-tc
This one still FAILs for me with your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ts-tc
> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-ts-tc
> FAIL: 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
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ti-tc
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ti-tc
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tl-tc
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tl-tc
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf-tc
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf-tc
Ack.
> FAIL: gdb.base/structs.exp: return foo<n>; return 2 structs-tc-ts
This one still FAILs for me with your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-ts
> FAIL: gdb.base/structs.exp: zed L<n> for finish; return 2 structs-tc-ts
> FAIL: 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
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-ti
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-ti
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-tl
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-tl
> FAIL: gdb.base/value-double-free.exp: continue
Ack.
> FAIL: gdb.base/watch-cond-infcall.exp: hw: continue
This is is not tested in my configuration/with my target (no hardware
watchpoints).
> FAIL: gdb.base/watch-cond-infcall.exp: sw: continue
Ack.
> FAIL: gdb.base/watchpoint-cond-gone.exp: Place the watchpoint
> FAIL: gdb.base/watchpoint-cond-gone.exp: Catch the no longer valid watchpoint
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.base/watchpoint.exp: global_ptr next
> FAIL: gdb.base/watchpoint.exp: next over ptr init
> FAIL: gdb.base/watchpoint.exp: next over buffer set
> FAIL: gdb.base/watchpoint.exp: global_ptr_ptr next
> FAIL: gdb.base/watchpoint.exp: next over global_ptr_ptr init
> FAIL: gdb.base/watchpoint.exp: next over global_ptr_ptr buffer set
> FAIL: gdb.base/watchpoint.exp: next over global_ptr_ptr pointer advance
These still FAIL for me with your patch.
> FAIL: gdb.base/watchpoint.exp: no-hw: global_ptr next
> FAIL: gdb.base/watchpoint.exp: no-hw: next over ptr init
> FAIL: gdb.base/watchpoint.exp: no-hw: next over buffer set
> FAIL: gdb.base/watchpoint.exp: no-hw: global_ptr_ptr next
> FAIL: gdb.base/watchpoint.exp: no-hw: next over global_ptr_ptr init
> FAIL: gdb.base/watchpoint.exp: no-hw: next over global_ptr_ptr buffer set
> FAIL: gdb.base/watchpoint.exp: no-hw: next over global_ptr_ptr pointer advance
Actually, these are the ones that still FAIL for me with your patch; the
other ones (with ``no-hw'' prefix) are with hardware watchpoints, which
is not applicable for my target.
> FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit, second time
> FAIL: gdb.base/watchpoints.exp: Watchpoint ival1 hit count is 2
> FAIL: gdb.base/watchpoints.exp: watchpoint hit, second time
> FAIL: gdb.base/watchpoints.exp: Watchpoint hit count is 2
> FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit, third time
> FAIL: gdb.base/watchpoints.exp: Watchpoint ival1 hit count is 3
> FAIL: gdb.base/watchpoints.exp: watchpoint hit, third time
> FAIL: gdb.base/watchpoints.exp: Watchpoint hit count is 3
> FAIL: gdb.base/watchpoints.exp: watchpoint hit, fourth time
> FAIL: gdb.base/watchpoints.exp: Watchpoint hit count is 4
> FAIL: gdb.base/watchpoints.exp: watchpoint hit, fifth time
> FAIL: gdb.base/watchpoints.exp: Watchpoint hit count is 5
> FAIL: gdb.cp/expand-sals.exp: continue to breakpoint: func
> FAIL: gdb.cp/expand-sals.exp: continue to breakpoint: next caller func
> FAIL: gdb.cp/extern-c.exp: continue to breakpoint: c_func
> FAIL: gdb.cp/extern-c.exp: continue to breakpoint: c_funcs_1
> FAIL: gdb.cp/extern-c.exp: continue to breakpoint: c_funcs_2
> FAIL: gdb.cp/namespace-nested-import.exp: print C::x
Ack.
> FAIL: gdb.dwarf2/dw2-cp-infcall-ref-static.exp: p f()
> FAIL: gdb.dwarf2/dw2-ref-missing-frame.exp: func_nofb backtrace
> FAIL: gdb.dwarf2/dw2-ref-missing-frame.exp: func_loopfb backtrace
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> FAIL: gdb.linespec/linespec.exp: set breakpoint at lspec.cc instance of NameSpace::overload
> FAIL: gdb.linespec/linespec.exp: set breakpoint at specific instance of NameSpace::overload
Ack.
> FAIL: gdb.mi/dw2-ref-missing-frame.exp: test func_nofb_marker
> FAIL: gdb.mi/mi-var-display.exp: print FP register
> FAIL: gdb.mi/mi2-var-display.exp: print FP register
> FAIL: gdb.opt/inline-bt.exp: continue to bar (1)
> FAIL: gdb.opt/inline-bt.exp: continue to bar (2)
> FAIL: gdb.opt/inline-bt.exp: continue to bar (3)
> FAIL: gdb.opt/inline-cmds.exp: continue to bar (1)
> FAIL: gdb.opt/inline-cmds.exp: continue to bar (2)
> FAIL: gdb.opt/inline-cmds.exp: continue to marker
> FAIL: gdb.opt/inline-cmds.exp: next over inlined functions
> FAIL: gdb.opt/inline-cmds.exp: next past inlined func1
> FAIL: gdb.opt/inline-cmds.exp: step into finish marker
> FAIL: gdb.opt/inline-cmds.exp: enter inlined_fn from noinline
> FAIL: gdb.opt/inline-cmds.exp: backtrace at inlined_fn from noinline
> FAIL: gdb.opt/inline-cmds.exp: inlined_fn from noinline inlined
> FAIL: gdb.opt/inline-cmds.exp: up to noinline
> FAIL: gdb.opt/inline-cmds.exp: noinline from outer_inline1 not inlined
> FAIL: gdb.opt/inline-cmds.exp: up to outer_inline1
> FAIL: gdb.opt/inline-cmds.exp: outer_inline1 inlined
> FAIL: gdb.opt/inline-cmds.exp: up to outer_inline2
> FAIL: gdb.opt/inline-cmds.exp: outer_inline2 inlined
> FAIL: gdb.opt/inline-cmds.exp: up from outer_inline2
> FAIL: gdb.opt/inline-cmds.exp: main not inlined
> FAIL: gdb.opt/inline-locals.exp: continue to bar (1)
> FAIL: gdb.opt/inline-locals.exp: continue to bar (2)
> FAIL: gdb.opt/inline-locals.exp: continue to bar (3)
> FAIL: gdb.stabs/gdb11479.exp: Stop at first breakpoint forced_stabs (the program exited)
> FAIL: gdb.stabs/gdb11479.exp: Inspect t in test2 forced_stabs
> FAIL: gdb.stabs/gdb11479.exp: sizeof (e) in test2 forced_stabs
> FAIL: gdb.stabs/gdb11479.exp: Stop at first breakpoint forced_stabs (the program is no longer running)
> FAIL: gdb.stabs/gdb11479.exp: Inspect t in test forced_stabs
> FAIL: gdb.stabs/gdb11479.exp: sizeof (e) in test forced_stabs
These didn't originally FAIL for me, but already PASSed; no change with
your patch.
> Here is a list of FAILs that my patch introduced (regressions). There
> are 9 of them:
> FAIL: gdb.base/store.exp: continue to add_charest
> FAIL: gdb.base/store.exp: continue to add_short
> FAIL: gdb.base/store.exp: continue to add_int
> FAIL: gdb.base/store.exp: continue to add_long
> FAIL: gdb.base/store.exp: continue to add_longest
Ack. Additional regressions for my testing with your patch:
FAIL: gdb.base/store.exp: continue to add_float
FAIL: gdb.base/store.exp: continue to add_double
FAIL: gdb.base/store.exp: continue to add_doublest
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-td-tf
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-td-tf
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf-td
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf-td
Ack.
Additional regressions for my testing with your patch:
Running /scratch/tschwing/FM_sh-linux-gnu/src/gdb-mainline/gdb/testsuite/gdb.threads/staticthreads.exp ...
PASS: gdb.threads/staticthreads.exp: successfully compiled posix threads test case
PASS: gdb.threads/staticthreads.exp: set print sevenbit-strings
PASS: gdb.threads/staticthreads.exp: break sem_post
-PASS: gdb.threads/staticthreads.exp: Continue to main's call of sem_post
+FAIL: gdb.threads/staticthreads.exp: Continue to main's call of sem_post (the program exited)
PASS: gdb.threads/staticthreads.exp: rerun to main
PASS: gdb.threads/staticthreads.exp: handle SIG32 nostop noprint pass
-PASS: gdb.threads/staticthreads.exp: handle SIG32 helps
-PASS: gdb.threads/staticthreads.exp: info threads
+FAIL: gdb.threads/staticthreads.exp: handle SIG32 helps (the program exited)
+KFAIL: gdb.threads/staticthreads.exp: info threads (PRMS: gdb/1328)
PASS: gdb.threads/staticthreads.exp: GDB exits with static thread program
> Here are the FAILs that your patch fixed. There are 127 of them.
> FAIL: gdb.base/arrayidx.exp: Print array with array-indexes off
> FAIL: gdb.base/arrayidx.exp: Print array with array-indexes on
> FAIL: gdb.base/break-always.exp: continue to breakpoint: bar
Ack.
> FAIL: gdb.base/break-inline.exp: start
As above, I'm still seeing this:
Running /scratch/tschwing/FM_sh-linux-gnu/src/gdb-mainline/gdb/testsuite/gdb.base/break-inline.exp ...
ERROR: tcl error sourcing /scratch/tschwing/FM_sh-linux-gnu/src/gdb-mainline/gdb/testsuite/gdb.base/break-inline.exp.
ERROR: gdbserver does not support start without extended-remote
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tc
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tc
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-ts
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-ts
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-ti
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-ti
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tl
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tl
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tll
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tll
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tf
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tf
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-td
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-td
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tld
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tld
> FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-te
> FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-te
> FAIL: gdb.base/chng-syms.exp: running to stop_here first time
> FAIL: gdb.base/chng-syms.exp: continue until exit at breakpoint first time through (the program is no longer running)
> FAIL: gdb.base/gdb11531.exp: watchpoint variable triggers at next
> FAIL: gdb.base/reread.exp: breakpoint foo in first file
> FAIL: gdb.base/reread.exp: run to foo()
> FAIL: gdb.base/return.exp: continue to return of -5
> FAIL: gdb.base/return.exp: continue to return of -5.0
> FAIL: gdb.base/return2.exp: void function returned successfully
> FAIL: gdb.base/scope.exp: print funclocal at bar
> FAIL: gdb.base/scope.exp: print funclocal_bss at bar
> FAIL: gdb.base/skip.exp: step after deleting 1 (3)
> FAIL: gdb.base/skip.exp: step after disabling 3 (5)
> FAIL: gdb.base/skip.exp: step after enable 3 (3)
> FAIL: gdb.base/step-resume-infcall.exp: step
> FAIL: gdb.base/step-test.exp: step into
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tc
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tc
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-ts
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-ts
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-ti
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-ti
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ti
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ti
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tl
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tl
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tl
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tl
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tll
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tll
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tf
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tf
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-td
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-td
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 1 structs-tld
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 1 structs-tld
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-ti-tc
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-ti-tc
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tl-tc
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tl-tc
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tf-tc
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tf-tc
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-ti
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-ti
> FAIL: gdb.base/structs.exp: advance to fun<n> for return; return 2 structs-tc-tl
> FAIL: gdb.base/structs.exp: advance to fun<n> for finish; return 2 structs-tc-tl
> FAIL: gdb.base/value-double-free.exp: continue
Ack.
> FAIL: gdb.base/watch-cond-infcall.exp: hw: continue
As above, this is is not tested in my configuration/with my target (no
hardware watchpoints).
> FAIL: gdb.base/watch-cond-infcall.exp: sw: continue
Ack.
> FAIL: gdb.base/watchpoint.exp: global_ptr next
> FAIL: gdb.base/watchpoint.exp: next over ptr init
> FAIL: gdb.base/watchpoint.exp: next over buffer set
> FAIL: gdb.base/watchpoint.exp: global_ptr_ptr next
> FAIL: gdb.base/watchpoint.exp: next over global_ptr_ptr init
> FAIL: gdb.base/watchpoint.exp: next over global_ptr_ptr buffer set
> FAIL: gdb.base/watchpoint.exp: next over global_ptr_ptr pointer advance
As above, these still FAIL for me with your patch.
> FAIL: gdb.base/watchpoint.exp: no-hw: global_ptr next
> FAIL: gdb.base/watchpoint.exp: no-hw: next over ptr init
> FAIL: gdb.base/watchpoint.exp: no-hw: next over buffer set
> FAIL: gdb.base/watchpoint.exp: no-hw: global_ptr_ptr next
> FAIL: gdb.base/watchpoint.exp: no-hw: next over global_ptr_ptr init
> FAIL: gdb.base/watchpoint.exp: no-hw: next over global_ptr_ptr buffer set
> FAIL: gdb.base/watchpoint.exp: no-hw: next over global_ptr_ptr pointer advance
As above, actually, these are the ones that still FAIL for me with your
patch; the other ones (with ``no-hw'' prefix) are with hardware
watchpoints, which is not applicable for my target.
> FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit, second time
> FAIL: gdb.base/watchpoints.exp: Watchpoint ival1 hit count is 2
> FAIL: gdb.base/watchpoints.exp: watchpoint hit, second time
> FAIL: gdb.base/watchpoints.exp: Watchpoint hit count is 2
> FAIL: gdb.base/watchpoints.exp: watchpoint ival1 hit, third time
> FAIL: gdb.base/watchpoints.exp: Watchpoint ival1 hit count is 3
> FAIL: gdb.base/watchpoints.exp: watchpoint hit, third time
> FAIL: gdb.base/watchpoints.exp: Watchpoint hit count is 3
> FAIL: gdb.base/watchpoints.exp: watchpoint hit, fourth time
> FAIL: gdb.base/watchpoints.exp: Watchpoint hit count is 4
> FAIL: gdb.base/watchpoints.exp: watchpoint hit, fifth time
> FAIL: gdb.base/watchpoints.exp: Watchpoint hit count is 5
> FAIL: gdb.cp/expand-sals.exp: continue to breakpoint: func
> FAIL: gdb.cp/expand-sals.exp: continue to breakpoint: next caller func
> FAIL: gdb.cp/extern-c.exp: continue to breakpoint: c_func
> FAIL: gdb.cp/extern-c.exp: continue to breakpoint: c_funcs_1
> FAIL: gdb.cp/extern-c.exp: continue to breakpoint: c_funcs_2
> FAIL: gdb.cp/namespace-nested-import.exp: print C::x
> FAIL: gdb.linespec/linespec.exp: set breakpoint at lspec.cc instance of NameSpace::overload
> FAIL: gdb.linespec/linespec.exp: set breakpoint at specific instance of NameSpace::overload
Ack.
> FAIL: gdb.opt/inline-bt.exp: continue to bar (1)
> FAIL: gdb.opt/inline-bt.exp: continue to bar (2)
> FAIL: gdb.opt/inline-bt.exp: continue to bar (3)
> FAIL: gdb.opt/inline-cmds.exp: continue to bar (1)
> FAIL: gdb.opt/inline-cmds.exp: continue to bar (2)
> FAIL: gdb.opt/inline-cmds.exp: continue to marker
> FAIL: gdb.opt/inline-cmds.exp: step into finish marker
> FAIL: gdb.opt/inline-cmds.exp: enter inlined_fn from noinline
> FAIL: gdb.opt/inline-cmds.exp: backtrace at inlined_fn from noinline
> FAIL: gdb.opt/inline-cmds.exp: inlined_fn from noinline inlined
> FAIL: gdb.opt/inline-cmds.exp: up to noinline
> FAIL: gdb.opt/inline-cmds.exp: noinline from outer_inline1 not inlined
> FAIL: gdb.opt/inline-cmds.exp: up to outer_inline1
> FAIL: gdb.opt/inline-cmds.exp: outer_inline1 inlined
> FAIL: gdb.opt/inline-cmds.exp: up to outer_inline2
> FAIL: gdb.opt/inline-cmds.exp: outer_inline2 inlined
> FAIL: gdb.opt/inline-cmds.exp: up from outer_inline2
> FAIL: gdb.opt/inline-cmds.exp: main not inlined
> FAIL: gdb.opt/inline-locals.exp: continue to bar (1)
> FAIL: gdb.opt/inline-locals.exp: continue to bar (2)
> FAIL: gdb.opt/inline-locals.exp: continue to bar (3)
As above, these didn't originally FAIL for me, but already PASSed; no
change with my patch.
> Your patch did not introduce any regressions.
Ack.
Grüße,
Thomas
[-- Attachment #2: Type: application/pgp-signature, Size: 489 bytes --]
next prev parent reply other threads:[~2012-02-21 14:15 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-15 14:00 Thomas Schwinge
2012-02-15 14:54 ` Pedro Alves
2012-02-16 15:27 ` [PATCH] [SH] GDB crash in sh_is_renesas_calling_convention, TYPE_CALLING_CONVENTION (was: Prologue skipping if there is none) Thomas Schwinge
2012-02-16 19:38 ` [PATCH] [SH] GDB crash in sh_is_renesas_calling_convention, TYPE_CALLING_CONVENTION Tom Tromey
2012-02-15 16:09 ` [PATCH] [SH] Prologue skipping if there is none Kevin Buettner
2012-02-16 0:13 ` Kevin Buettner
2012-02-16 16:59 ` Thomas Schwinge
2012-02-17 2:30 ` Kevin Buettner
2012-02-20 16:19 ` Thomas Schwinge
2012-02-21 5:25 ` Kevin Buettner
2012-02-24 11:09 ` Thomas Schwinge
2012-02-24 22:21 ` Kevin Buettner
2012-02-29 13:51 ` Thomas Schwinge
2012-03-01 0:13 ` Kevin Buettner
2012-03-01 9:03 ` Thomas Schwinge
2012-03-01 9:00 ` Thomas Schwinge
2012-03-02 0:19 ` Kevin Buettner
2012-03-02 11:18 ` Thomas Schwinge
2012-03-02 12:01 ` Pedro Alves
2012-03-02 14:15 ` Thomas Schwinge
2012-03-06 19:08 ` Pedro Alves
2012-03-03 1:18 ` Kevin Buettner
2012-03-05 15:16 ` Thomas Schwinge
2012-03-05 19:40 ` Kevin Buettner
2012-02-21 15:23 ` Thomas Schwinge [this message]
2012-02-22 14:54 ` Simulator testing for sh and sh64 (was: [PATCH] [SH] Prologue skipping if there is none) Thomas Schwinge
2012-02-22 16:56 ` Kevin Buettner
2012-02-22 19:33 ` Simulator testing for sh and sh64 Thomas Schwinge
2012-02-23 0:35 ` Kaz Kojima
2012-02-24 21:38 ` Thomas Schwinge
2012-02-23 19:55 ` Thomas Schwinge
2012-02-23 22:53 ` Kevin Buettner
2012-02-24 11:12 ` Thomas Schwinge
2012-02-23 23:57 ` Kevin Buettner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8762f09stp.fsf@schwinge.name \
--to=thomas@codesourcery.com \
--cc=gdb-patches@sourceware.org \
--cc=kevinb@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox