From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24475 invoked by alias); 18 Oct 2006 19:58:49 -0000 Received: (qmail 24466 invoked by uid 22791); 18 Oct 2006 19:58:48 -0000 X-Spam-Check-By: sourceware.org Received: from sibelius.xs4all.nl (HELO brahms.sibelius.xs4all.nl) (82.92.89.47) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 18 Oct 2006 19:58:44 +0000 Received: from elgar.sibelius.xs4all.nl (root@elgar.sibelius.xs4all.nl [192.168.0.2]) by brahms.sibelius.xs4all.nl (8.13.8/8.13.6) with ESMTP id k9IJw8fI017192; Wed, 18 Oct 2006 21:58:08 +0200 (CEST) Received: from elgar.sibelius.xs4all.nl (kettenis@localhost.sibelius.xs4all.nl [127.0.0.1]) by elgar.sibelius.xs4all.nl (8.13.8/8.13.6) with ESMTP id k9IJw8HY019383; Wed, 18 Oct 2006 21:58:08 +0200 (CEST) Received: (from kettenis@localhost) by elgar.sibelius.xs4all.nl (8.13.8/8.13.8/Submit) id k9IJw88G009044; Wed, 18 Oct 2006 21:58:08 +0200 (CEST) Date: Wed, 18 Oct 2006 19:58:00 -0000 Message-Id: <200610181958.k9IJw88G009044@elgar.sibelius.xs4all.nl> From: Mark Kettenis To: drow@false.org CC: gdb-patches@sourceware.org In-reply-to: <20061017212114.GC12643@nevyn.them.org> (message from Daniel Jacobowitz on Tue, 17 Oct 2006 17:21:14 -0400) Subject: Re: Improve end check on rs6000 prologue analyzer References: <20060929213726.GA1770@nevyn.them.org> <200609301932.k8UJW0kw030997@elgar.sibelius.xs4all.nl> <20061017212114.GC12643@nevyn.them.org> Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2006-10/txt/msg00232.txt.bz2 > Date: Tue, 17 Oct 2006 17:21:14 -0400 > From: Daniel Jacobowitz > > Hi Mark, > > Do you think you could try out this one, instead? I worked out what > was going wrong for me: sign extension. I was testing a 64-bit GDB > binary on 32-bit programs, which caused (op >> 22) == 0x20f to fail; > when it didn't fail, on a 32-bit host, that check allows any load into > r31 to be considered part of the prologue. But it was advancing so far > that for small functions, the breakpoint was placed after the restore > of r31 in the epilogue - much too far. > > This patch fixes the original bug, fixes the sign extension problem, > and generally overhauls the prologue skipping (as opposed to scanning) > to work more like MIPS's. It tests with no regressions on > powerpc-linux, using a 32-bit binary this time. Unfortunately, I still get a few regressions, see below. They all seem to be problems with not skipping the complete prologue. I get the feeling that using line number information for prologue skipping is just not reliable :(. --- gdb.sum.2 Wed Oct 18 19:44:32 2006 +++ gdb.sum Wed Oct 18 20:44:26 2006 @@ -1,4 +1,4 @@ -Test Run By kettenis on Wed Oct 18 19:25:55 2006 +Test Run By kettenis on Wed Oct 18 20:25:47 2006 Native configuration is powerpc-unknown-openbsd3.9 === gdb tests === @@ -5011,7 +5011,7 @@ PASS: gdb.base/sepdebug.exp: breakpoint function, optimized file PASS: gdb.base/sepdebug.exp: breakpoint small function, optimized file PASS: gdb.base/sepdebug.exp: run until function breakpoint, optimized file -PASS: gdb.base/sepdebug.exp: run until breakpoint set at small function, optimized file +FAIL: gdb.base/sepdebug.exp: run until breakpoint set at small function, optimized file Running ../../../../src/gdb/gdb/testsuite/gdb.base/sepsymtab.exp ... PASS: gdb.base/sepsymtab.exp: info sym main Running ../../../../src/gdb/gdb/testsuite/gdb.base/setshow.exp ... @@ -8540,7 +8540,7 @@ PASS: gdb.cp/m-data.exp: template object, base enum PASS: gdb.cp/m-data.exp: template object, derived enum PASS: gdb.cp/m-data.exp: continue to breakpoint: continue to shadow breakpoint -PASS: gdb.cp/m-data.exp: shadowing member +FAIL: gdb.cp/m-data.exp: shadowing member PASS: gdb.cp/m-data.exp: shadowed global variable Running ../../../../src/gdb/gdb/testsuite/gdb.cp/m-static.exp ... PASS: gdb.cp/m-static.exp: continue to breakpoint: end of constructors @@ -9314,6 +9314,21 @@ PASS: gdb.gdb/selftest.exp: set listsize to 1 PASS: gdb.gdb/selftest.exp: run until breakpoint at captured_main PASS: gdb.gdb/selftest.exp: printed version as string +PASS: gdb.gdb/selftest.exp: step over ttyarg initialization +FAIL: gdb.gdb/selftest.exp: step over ttyarg initialization ended up at odd location +PASS: gdb.gdb/selftest.exp: step over ttyarg initialization +PASS: gdb.gdb/selftest.exp: step over cdarg initialization +FAIL: gdb.gdb/selftest.exp: step over cdarg initialization ended up at odd location +PASS: gdb.gdb/selftest.exp: step over cdarg initialization +PASS: gdb.gdb/selftest.exp: step over corearg initialization +FAIL: gdb.gdb/selftest.exp: step over corearg initialization ended up at odd location +PASS: gdb.gdb/selftest.exp: step over corearg initialization +PASS: gdb.gdb/selftest.exp: step over execarg initialization +FAIL: gdb.gdb/selftest.exp: step over execarg initialization ended up at odd location +PASS: gdb.gdb/selftest.exp: step over execarg initialization +PASS: gdb.gdb/selftest.exp: step over symarg initialization +FAIL: gdb.gdb/selftest.exp: step over symarg initialization ended up at odd location +PASS: gdb.gdb/selftest.exp: step over symarg initialization PASS: gdb.gdb/selftest.exp: step over argc initialization PASS: gdb.gdb/selftest.exp: step over argv initialization PASS: gdb.gdb/selftest.exp: next over get_run_time and everything it calls @@ -9334,7 +9349,7 @@ PASS: gdb.gdb/selftest.exp: Set xgdb prompt PASS: gdb.gdb/selftest.exp: send ^C to child process PASS: gdb.gdb/selftest.exp: send SIGINT signal to child process -PASS: gdb.gdb/selftest.exp: backtrace through signal handler +FAIL: gdb.gdb/selftest.exp: backtrace through signal handler Running ../../../../src/gdb/gdb/testsuite/gdb.gdb/xfullpath.exp ... PASS: gdb.gdb/xfullpath.exp: breakpoint in captured_main PASS: gdb.gdb/xfullpath.exp: run until breakpoint at captured_main @@ -11227,8 +11242,8 @@ === gdb Summary === -# of expected passes 10594 -# of unexpected failures 89 +# of expected passes 10605 +# of unexpected failures 93 # of expected failures 42 # of known failures 79 # of unresolved testcases 1