This is the mail archive of the gdb@sourceware.cygnus.com 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]

Re: Patches for GNU/Linux PPC native now in CVS


   Date: Mon, 21 Feb 2000 19:52:01 -0700
   From: Kevin Buettner <kevinb@cygnus.com>

   I'm seeing 33 failures in the test suite at the present time.  There
   are some things which *should* work, like backtracing through signal
   handlers, but which don't for some reason.  In the coming days, I
   will attempt to reduce the number of failures.  In particular, I
   will make sure we can backtrace through signal handlers.  (I put
   a lot of time into this in the initial port, and want to make sure
   that it'll work again in the present port.)

Hi Kevin, I assume that your're using glibc on your Linux/PPC system.
Since that means that the outermost frame isn't the frame for `main',
but the frame for `__libc_start_main', this confuses some of the
tests.  One of these tests may be:

   gdb.base/annota1.exp: backtrace @ signal handler

This test still fails on Linux/i386 after I fixed the signal
trampoline recognition code there.  I believe it is the extra frame
that confuses the test here.  If I apply the following patch, the test
is passed:

Index: gdb/testsuite/gdb.base/annota1.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/annota1.exp,v
retrieving revision 1.1.1.7
diff -u -r1.1.1.7 annota1.exp
--- gdb/testsuite/gdb.base/annota1.exp	1999/11/09 01:23:14	1.1.1.7
+++ gdb/testsuite/gdb.base/annota1.exp	2000/02/22 10:08:54
@@ -277,7 +277,7 @@
 verbose "match_max now is: [match_max]"
 send_gdb "backtrace\n"
 gdb_expect {
-  -re "frame-begin 0 $hex.*0.*frame-end.*frame-begin 1 $hex.*1.*(\032\032signal-handler-caller\r\n.signal handler called.\r\n\r\n)*\032\032frame-end\r\n\r\n\032\032frame-begin 2 $hex.*2.*(frame-begin 3 $hex.*3.*)*frame-end.*$gdb_prompt$" \
+  -re "frame-begin 0 $hex.*0.*frame-end.*frame-begin 1 $hex.*1.*(\032\032signal-handler-caller\r\n.signal handler called.\r\n\r\n)*\032\032frame-end\r\n\r\n\032\032frame-begin 2 $hex.*2.*(frame-begin 3 $hex.*3)*frame-end.*$gdb_prompt$" \
 	{ pass "backtrace @ signal handler" }
   -re ".*$gdb_prompt$"     { fail "backtrace @ signal handler" }
   timeout	            { fail "backtrace @ signal handler (timeout)" }


I'm not sure however, if this patch is entirey correct, since I don't
really understand what I'm doing here :-(.

Other tests that fail on Linux/i386 that I have analyzed and probably
will fail on Linux/PPC too are listed below:

----------------------------------------------------------------------

On i586-pc-linux-gnu, the following test doesn't really test whether a
"finish" from the outermost frame is disallowed:

   PASS: gdb.base/break.exp: finish from outermost frame disallowed

The reason is that `main' isn't the outermost frame, `__libc_start_main' is.

The reason for the following failures is somewhat related.

   FAIL: gdb.base/break.exp: break main #1
   FAIL: gdb.base/break.exp: break main #2
   FAIL: gdb.base/break.exp: clear main

After the previous "finish", the current frame is `__libc_start_main', which has a local variable `main'.  This means that an attempt to set a breakpoint on main fails with the message:

   "main" is not a function


The following test fails

   FAIL: gdb.base/commands.exp: continue in infrun_breakpoint_command_test

Looks like i586-pc-linux-gnu behaves in the same way is hppa*-hp-hpux* here.  But that seems to be broken to me.


Then we have the following failure:

   FAIL: gdb.base/reread.exp: run to foo() second time (PRMS 13484)

Here the expect string seems to be wrong.  The breakpoint is at line
8, not in line 9.


This test also fails:

   FAIL: gdb.base/sigall.exp: get signal CHLD

Looks like SIGCHLD is being blocked in the child because it is blocked
in GDB and the signal mask is inherited by the child.  

The following tests fail as a consequence of the failure above:

   FAIL: gdb.base/sigall.exp: advance to TTIN
   FAIL: gdb.base/sigall.exp: get signal TTIN

----------------------------------------------------------------------

Anyway, I hope this helps,

Mark

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