This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


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

Re: Improve end check on rs6000 prologue analyzer


> Date: Tue, 17 Oct 2006 17:21:14 -0400
> From: Daniel Jacobowitz <drow@false.org>
> 
> 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


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