Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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 --]

  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