From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16569 invoked by alias); 21 Feb 2012 14:15:26 -0000 Received: (qmail 16543 invoked by uid 22791); 21 Feb 2012 14:15:17 -0000 X-SWARE-Spam-Status: No, hits=-1.5 required=5.0 tests=AWL,BAYES_00,TW_GJ,TW_TJ X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 21 Feb 2012 14:14:56 +0000 Received: from nat-dem.mentorg.com ([195.212.93.2] helo=eu2-mail.mgc.mentorg.com) by relay1.mentorg.com with esmtp id 1RzqUY-0002HD-RW from Thomas_Schwinge@mentor.com ; Tue, 21 Feb 2012 06:14:55 -0800 Received: from feldtkeller.schwinge.homeip.net ([172.30.64.16]) by eu2-mail.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Tue, 21 Feb 2012 15:14:51 +0100 From: Thomas Schwinge To: Kevin Buettner Cc: gdb-patches@sourceware.org Subject: Re: [PATCH] [SH] Prologue skipping if there is none In-Reply-To: <20120216182544.36b41a1b@mesquite.lan> References: <87pqdgciho.fsf@schwinge.name> <20120215075413.1313f7fa@mesquite.lan> <20120215165907.33f2e9a6@mesquite.lan> <8739aad9il.fsf@schwinge.name> <20120216182544.36b41a1b@mesquite.lan> User-Agent: Notmuch/0.9-101-g81dad07 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu) Date: Tue, 21 Feb 2012 15:23:00 -0000 Message-ID: <8762f09stp.fsf@schwinge.name> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-02/txt/msg00432.txt.bz2 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-length: 33369 Hi Kevin! On Thu, 16 Feb 2012 18:25:44 -0700, Kevin Buettner wrot= e: > On Thu, 16 Feb 2012 17:32:18 +0100 > Thomas Schwinge wrote: >=20 > > I now have (on a SH7785-based board). My patch fixes a few more failur= es > > than yours. ;-P >=20 > 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 eq= ual 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/testsuit= e/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/testsuit= e/gdb.base/break-inline.exp ... ERROR: tcl error sourcing /scratch/tschwing/FM_sh-linux-gnu/src/gdb-mai= nline/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 tim= e 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 returne= d result > FAIL: gdb.base/return-nodebug.exp: short: return from function with no de= bug info with a cast > FAIL: gdb.base/return-nodebug.exp: short: full width of the returned resu= lt > FAIL: gdb.base/return-nodebug.exp: int: return from function with no debu= g 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 deb= ug 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 n= o 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 =3D \= {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 =3D \= {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 =3D \= {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 =3D \= {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 =3D \= {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 =3D \= {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 for return; return 1 struct= s-tc > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-tc Ack. > FAIL: gdb.base/structs.exp: return foo; return 2 structs-tc This one still FAILs for me with your patch. > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-tc > FAIL: gdb.base/structs.exp: zed L for finish; return 2 structs-tc > FAIL: gdb.base/structs.exp: finish foo; return 2 structs-tc > FAIL: gdb.base/structs.exp: value foo 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; return 3 structs-tc This one still FAILs for me with your patch. > FAIL: gdb.base/structs.exp: advance to fun for finish; return 3 struct= s-tc > FAIL: gdb.base/structs.exp: zed L for finish; return 3 structs-tc > FAIL: gdb.base/structs.exp: finish foo; return 3 structs-tc > FAIL: gdb.base/structs.exp: value foo 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; return 4 structs-tc This one still FAILs for me with your patch. > FAIL: gdb.base/structs.exp: advance to fun for finish; return 4 struct= s-tc > FAIL: gdb.base/structs.exp: zed L for finish; return 4 structs-tc > FAIL: gdb.base/structs.exp: finish foo; return 4 structs-tc > FAIL: gdb.base/structs.exp: value foo 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; return 5 structs-tc This one still FAILs for me with your patch. > FAIL: gdb.base/structs.exp: advance to fun for finish; return 5 struct= s-tc > FAIL: gdb.base/structs.exp: zed L for finish; return 5 structs-tc > FAIL: gdb.base/structs.exp: finish foo; return 5 structs-tc > FAIL: gdb.base/structs.exp: value foo 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; return 6 structs-tc This one still FAILs for me with your patch. > FAIL: gdb.base/structs.exp: advance to fun for finish; return 6 struct= s-tc > FAIL: gdb.base/structs.exp: zed L for finish; return 6 structs-tc > FAIL: gdb.base/structs.exp: finish foo; return 6 structs-tc > FAIL: gdb.base/structs.exp: value foo 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; return 7 structs-tc This one still FAILs for me with your patch. > FAIL: gdb.base/structs.exp: advance to fun for finish; return 7 struct= s-tc > FAIL: gdb.base/structs.exp: zed L for finish; return 7 structs-tc > FAIL: gdb.base/structs.exp: finish foo; return 7 structs-tc > FAIL: gdb.base/structs.exp: value foo 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; return 8 structs-tc This one still FAILs for me with your patch. > FAIL: gdb.base/structs.exp: advance to fun for finish; return 8 struct= s-tc > FAIL: gdb.base/structs.exp: zed L for finish; return 8 structs-tc > FAIL: gdb.base/structs.exp: finish foo; return 8 structs-tc > FAIL: gdb.base/structs.exp: value foo 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 for return; return 1 struct= s-ts > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-ts Ack. > FAIL: gdb.base/structs.exp: return foo; return 2 structs-ts This one still FAILs for me with your patch. > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-ts > FAIL: gdb.base/structs.exp: zed L for finish; return 2 structs-ts > FAIL: gdb.base/structs.exp: finish foo; return 2 structs-ts > FAIL: gdb.base/structs.exp: value foo 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; return 3 structs-ts This one still FAILs for me with your patch. > FAIL: gdb.base/structs.exp: advance to fun for finish; return 3 struct= s-ts > FAIL: gdb.base/structs.exp: zed L for finish; return 3 structs-ts > FAIL: gdb.base/structs.exp: finish foo; return 3 structs-ts > FAIL: gdb.base/structs.exp: value foo 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; return 4 structs-ts This one still FAILs for me with your patch. > FAIL: gdb.base/structs.exp: advance to fun for finish; return 4 struct= s-ts > FAIL: gdb.base/structs.exp: zed L for finish; return 4 structs-ts > FAIL: gdb.base/structs.exp: finish foo; return 4 structs-ts > FAIL: gdb.base/structs.exp: value foo 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 for return; return 1 struct= s-ti > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-ti > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-ti > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-ti > FAIL: gdb.base/structs.exp: advance to fun for return; return 1 struct= s-tl > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-tl > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-tl > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-tl > FAIL: gdb.base/structs.exp: advance to fun for return; return 1 struct= s-tll > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-tll > FAIL: gdb.base/structs.exp: advance to fun for return; return 1 struct= s-tf > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-tf > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-tf > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-tf > FAIL: gdb.base/structs.exp: advance to fun for return; return 1 struct= s-td > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-td > FAIL: gdb.base/structs.exp: advance to fun for return; return 1 struct= s-tld > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-tld Ack. > FAIL: gdb.base/structs.exp: return foo; return 2 structs-ts-tc This one still FAILs for me with your patch. > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-ts-tc > FAIL: gdb.base/structs.exp: zed L for finish; return 2 structs-ts-tc > FAIL: gdb.base/structs.exp: finish foo; return 2 structs-ts-tc > FAIL: gdb.base/structs.exp: value foo 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 for return; return 2 struct= s-ti-tc > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-ti-tc > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-tl-tc > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-tl-tc > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-tf-tc > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-tf-tc Ack. > FAIL: gdb.base/structs.exp: return foo; return 2 structs-tc-ts This one still FAILs for me with your patch. > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-tc-ts > FAIL: gdb.base/structs.exp: zed L for finish; return 2 structs-tc-ts > FAIL: gdb.base/structs.exp: finish foo; return 2 structs-tc-ts > FAIL: gdb.base/structs.exp: value foo 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 for return; return 2 struct= s-tc-ti > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-tc-ti > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-tc-tl > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-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 watchp= oint 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 ad= vance 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 N= ameSpace::overload > FAIL: gdb.linespec/linespec.exp: set breakpoint at specific instance of N= ameSpace::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 for return; return 2 struct= s-td-tf > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-td-tf > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-tf-td > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-tf-td Ack. Additional regressions for my testing with your patch: Running /scratch/tschwing/FM_sh-linux-gnu/src/gdb-mainline/gdb/testsui= te/gdb.threads/staticthreads.exp ... PASS: gdb.threads/staticthreads.exp: successfully compiled posix threa= ds 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_po= st +FAIL: gdb.threads/staticthreads.exp: Continue to main's call of sem_po= st (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 e= xited) +KFAIL: gdb.threads/staticthreads.exp: info threads (PRMS: gdb/1328) PASS: gdb.threads/staticthreads.exp: GDB exits with static thread prog= ram > 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/testsuit= e/gdb.base/break-inline.exp ... ERROR: tcl error sourcing /scratch/tschwing/FM_sh-linux-gnu/src/gdb-mai= nline/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 tim= e 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 for return; return 1 struct= s-tc > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-tc > FAIL: gdb.base/structs.exp: advance to fun for return; return 1 struct= s-ts > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-ts > FAIL: gdb.base/structs.exp: advance to fun for return; return 1 struct= s-ti > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-ti > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-ti > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-ti > FAIL: gdb.base/structs.exp: advance to fun for return; return 1 struct= s-tl > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-tl > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-tl > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-tl > FAIL: gdb.base/structs.exp: advance to fun for return; return 1 struct= s-tll > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-tll > FAIL: gdb.base/structs.exp: advance to fun for return; return 1 struct= s-tf > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-tf > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-tf > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-tf > FAIL: gdb.base/structs.exp: advance to fun for return; return 1 struct= s-td > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-td > FAIL: gdb.base/structs.exp: advance to fun for return; return 1 struct= s-tld > FAIL: gdb.base/structs.exp: advance to fun for finish; return 1 struct= s-tld > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-ti-tc > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-ti-tc > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-tl-tc > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-tl-tc > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-tf-tc > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-tf-tc > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-tc-ti > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-tc-ti > FAIL: gdb.base/structs.exp: advance to fun for return; return 2 struct= s-tc-tl > FAIL: gdb.base/structs.exp: advance to fun for finish; return 2 struct= s-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 ad= vance 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 N= ameSpace::overload > FAIL: gdb.linespec/linespec.exp: set breakpoint at specific instance of N= ameSpace::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=C3=BC=C3=9Fe, Thomas --=-=-= Content-Type: application/pgp-signature Content-length: 489 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQEcBAEBAgAGBQJPQ6bSAAoJENuKOtuXzphJjlgH/Rsr8wyEnv7GpXn/zk3J3evn 4Ii2fY70ftxUrg0hfSNSKSf+nZDbdwZonu39XzpsVPXupeadvRS5/0gdYou8mNYL T9FnF9WIZOD+fc7iKteGLQQBd7u8/2vAgjosE/5QSBP2zdmEykbhkgxWSWOFClgG 96WN/jt/h3Cgwu2bWM5rmuzBCYq6e61NEu71A4yJjVweiMIW5be6MiKH2G7LIXQu MfhaWXhjfzwUWoFIjql9UNq136JXDYckGRz1MuxK2d7ia4Nx2eJBK6K1yyaVt48V tug+shs5cWykMFZ5O67Zf7N+keywzH3tYKj8elHMOrqVo3MdnslZCW3gygYI1r0= =vBXQ -----END PGP SIGNATURE----- --=-=-=--