Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* skip __main
@ 2008-01-29  5:35 Pedro Alves
  2008-01-29  8:50 ` Pierre Muller
  0 siblings, 1 reply; 5+ messages in thread
From: Pedro Alves @ 2008-01-29  5:35 UTC (permalink / raw)
  To: Pierre Muller, gdb-patches

[-- Attachment #1: Type: text/plain, Size: 1033 bytes --]

Hi all, Pierre,

Here's the much smaller patch I mentioned at gdb@.

This version is about as small as it can get.  First the
prologue is analysed and skipped, then line info is used
to get at the first line of user code in the function.  If
the function is called "main" (humm, I shall move that into
the callback, as I believe the place where __main/__gccmain
is emitted is configurable on the gcc side), call a gdbarch
method that skips the __main call.  Works OK as long as nothing
is scheduled into before the __main call.  That means that it
should work OK at -O0, which is enough for fixing the
runto_main problems in the testsuite.  Then again,
debugging code with .stabs debug info at anything but -O0
is not pleasant anyway.

Last time I looked at the results, it uncovered other
more serious problems, so it was a win just for that fact.

I'm starting an overnight testrun on Cygwin, as the
last time I did that was a couple of months back.

Any comments?  Suggestions for a better gdbarch
callback name?

-- 
Pedro Alves

[-- Attachment #2: skip_main.diff --]
[-- Type: text/x-diff, Size: 8790 bytes --]

2007-10-13  Pedro Alves  <pedro_alves@portugalmail.pt>

	* gdbarch.sh (gdbarch_skip___main_call): New.
	* gdbarch.h, gdbarch.c: Regenerate.

	* i386-tdep.h (i386_skip___main_call): Declare.
	* i386-tdep.c (i386_skip___main_call): New.
	* i386-cygwin-tdep.c (i386_cygwin_init_abi): Register
	i386_skip___main_call as gdbarch_skip___main_call gdbarch
	callback.
	* symtab.c (find_function_start_sal): When pc points at the "main"
	function, call gdbarch_skip___main_call.

---
 gdb/gdbarch.c          |   33 +++++++++++++++++++++++++++++++++
 gdb/gdbarch.h          |    6 ++++++
 gdb/gdbarch.sh         |    1 +
 gdb/i386-cygwin-tdep.c |    2 ++
 gdb/i386-tdep.c        |   27 +++++++++++++++++++++++++++
 gdb/i386-tdep.h        |    1 +
 gdb/symtab.c           |   15 +++++++++++++++
 7 files changed, 85 insertions(+)

Index: src/gdb/i386-tdep.c
===================================================================
--- src.orig/gdb/i386-tdep.c	2008-01-29 04:39:24.000000000 +0000
+++ src/gdb/i386-tdep.c	2008-01-29 04:39:40.000000000 +0000
@@ -949,6 +949,33 @@ i386_skip_prologue (struct gdbarch *gdba
   return pc;
 }
 
+/* Check that the code pointed to by PC corresponds to a call to
+   __main, skip it if so.  Return PC otherwise.  */
+
+CORE_ADDR
+i386_skip___main_call (struct gdbarch *gdbarch, CORE_ADDR pc)
+{
+  gdb_byte op;
+
+  read_memory_nobpt (pc, &op, 1);
+  if (op == 0xe8)
+    {
+      gdb_byte buf[4];
+      if (target_read_memory (pc + 1, buf, sizeof buf) == 0)
+ 	{
+ 	  CORE_ADDR call_dest = pc + 5 + extract_unsigned_integer (buf, 4);
+
+ 	  struct minimal_symbol *s = lookup_minimal_symbol_by_pc (call_dest);
+ 	  if (s != NULL
+ 	      && SYMBOL_LINKAGE_NAME (s) != NULL
+ 	      && strcmp (SYMBOL_LINKAGE_NAME (s), "__main") == 0)
+ 	    pc += 5;
+ 	}
+    }
+
+  return pc;
+}
+
 /* This function is 64-bit safe.  */
 
 static CORE_ADDR
Index: src/gdb/gdbarch.c
===================================================================
--- src.orig/gdb/gdbarch.c	2008-01-29 04:39:16.000000000 +0000
+++ src/gdb/gdbarch.c	2008-01-29 04:39:40.000000000 +0000
@@ -184,6 +184,7 @@ struct gdbarch
   gdbarch_integer_to_address_ftype *integer_to_address;
   gdbarch_return_value_ftype *return_value;
   gdbarch_skip_prologue_ftype *skip_prologue;
+  gdbarch_skip___main_call_ftype *skip___main_call;
   gdbarch_inner_than_ftype *inner_than;
   gdbarch_breakpoint_from_pc_ftype *breakpoint_from_pc;
   gdbarch_adjust_breakpoint_address_ftype *adjust_breakpoint_address;
@@ -306,6 +307,7 @@ struct gdbarch startup_gdbarch =
   0,  /* integer_to_address */
   0,  /* return_value */
   0,  /* skip_prologue */
+  0,  /* skip___main_call */
   0,  /* inner_than */
   0,  /* breakpoint_from_pc */
   0,  /* adjust_breakpoint_address */
@@ -542,6 +544,7 @@ verify_gdbarch (struct gdbarch *gdbarch)
   /* Skip verify of return_value, has predicate */
   if (gdbarch->skip_prologue == 0)
     fprintf_unfiltered (log, "\n\tskip_prologue");
+  /* Skip verify of skip___main_call, has predicate */
   if (gdbarch->inner_than == 0)
     fprintf_unfiltered (log, "\n\tinner_than");
   if (gdbarch->breakpoint_from_pc == 0)
@@ -934,6 +937,12 @@ gdbarch_dump (struct gdbarch *gdbarch, s
                       "gdbarch_dump: single_step_through_delay = <0x%lx>\n",
                       (long) gdbarch->single_step_through_delay);
   fprintf_unfiltered (file,
+                      "gdbarch_dump: gdbarch_skip___main_call_p() = %d\n",
+                      gdbarch_skip___main_call_p (gdbarch));
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: skip___main_call = <0x%lx>\n",
+                      (long) gdbarch->skip___main_call);
+  fprintf_unfiltered (file,
                       "gdbarch_dump: gdbarch_skip_permanent_breakpoint_p() = %d\n",
                       gdbarch_skip_permanent_breakpoint_p (gdbarch));
   fprintf_unfiltered (file,
@@ -2075,6 +2084,30 @@ set_gdbarch_skip_prologue (struct gdbarc
 }
 
 int
+gdbarch_skip___main_call_p (struct gdbarch *gdbarch)
+{
+  gdb_assert (gdbarch != NULL);
+  return gdbarch->skip___main_call != NULL;
+}
+
+CORE_ADDR
+gdbarch_skip___main_call (struct gdbarch *gdbarch, CORE_ADDR ip)
+{
+  gdb_assert (gdbarch != NULL);
+  gdb_assert (gdbarch->skip___main_call != NULL);
+  if (gdbarch_debug >= 2)
+    fprintf_unfiltered (gdb_stdlog, "gdbarch_skip___main_call called\n");
+  return gdbarch->skip___main_call (gdbarch, ip);
+}
+
+void
+set_gdbarch_skip___main_call (struct gdbarch *gdbarch,
+                              gdbarch_skip___main_call_ftype skip___main_call)
+{
+  gdbarch->skip___main_call = skip___main_call;
+}
+
+int
 gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs)
 {
   gdb_assert (gdbarch != NULL);
Index: src/gdb/gdbarch.h
===================================================================
--- src.orig/gdb/gdbarch.h	2008-01-29 04:39:16.000000000 +0000
+++ src/gdb/gdbarch.h	2008-01-29 04:39:40.000000000 +0000
@@ -374,6 +374,12 @@ typedef CORE_ADDR (gdbarch_skip_prologue
 extern CORE_ADDR gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip);
 extern void set_gdbarch_skip_prologue (struct gdbarch *gdbarch, gdbarch_skip_prologue_ftype *skip_prologue);
 
+extern int gdbarch_skip___main_call_p (struct gdbarch *gdbarch);
+
+typedef CORE_ADDR (gdbarch_skip___main_call_ftype) (struct gdbarch *gdbarch, CORE_ADDR ip);
+extern CORE_ADDR gdbarch_skip___main_call (struct gdbarch *gdbarch, CORE_ADDR ip);
+extern void set_gdbarch_skip___main_call (struct gdbarch *gdbarch, gdbarch_skip___main_call_ftype *skip___main_call);
+
 typedef int (gdbarch_inner_than_ftype) (CORE_ADDR lhs, CORE_ADDR rhs);
 extern int gdbarch_inner_than (struct gdbarch *gdbarch, CORE_ADDR lhs, CORE_ADDR rhs);
 extern void set_gdbarch_inner_than (struct gdbarch *gdbarch, gdbarch_inner_than_ftype *inner_than);
Index: src/gdb/gdbarch.sh
===================================================================
--- src.orig/gdb/gdbarch.sh	2008-01-29 04:39:16.000000000 +0000
+++ src/gdb/gdbarch.sh	2008-01-29 04:39:40.000000000 +0000
@@ -477,6 +477,7 @@ M:CORE_ADDR:integer_to_address:struct ty
 M:enum return_value_convention:return_value:struct type *valtype, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf:valtype, regcache, readbuf, writebuf
 
 m:CORE_ADDR:skip_prologue:CORE_ADDR ip:ip:0:0
+M:CORE_ADDR:skip___main_call:CORE_ADDR ip:ip
 f:int:inner_than:CORE_ADDR lhs, CORE_ADDR rhs:lhs, rhs:0:0
 m:const gdb_byte *:breakpoint_from_pc:CORE_ADDR *pcptr, int *lenptr:pcptr, lenptr::0:
 M:CORE_ADDR:adjust_breakpoint_address:CORE_ADDR bpaddr:bpaddr
Index: src/gdb/i386-cygwin-tdep.c
===================================================================
--- src.orig/gdb/i386-cygwin-tdep.c	2008-01-29 04:39:18.000000000 +0000
+++ src/gdb/i386-cygwin-tdep.c	2008-01-29 04:39:40.000000000 +0000
@@ -227,6 +227,8 @@ i386_cygwin_init_abi (struct gdbarch_inf
 
   set_gdbarch_skip_trampoline_code (gdbarch, i386_cygwin_skip_trampoline_code);
 
+  set_gdbarch_skip___main_call (gdbarch, i386_skip___main_call);
+
   tdep->struct_return = reg_struct_return;
 
   tdep->gregset_reg_offset = i386_win32_gregset_reg_offset;
Index: src/gdb/i386-tdep.h
===================================================================
--- src.orig/gdb/i386-tdep.h	2008-01-29 04:39:18.000000000 +0000
+++ src/gdb/i386-tdep.h	2008-01-29 04:39:40.000000000 +0000
@@ -166,6 +166,7 @@ extern struct type *i386_sse_type (struc
 
 /* Functions exported from i386-tdep.c.  */
 extern CORE_ADDR i386_pe_skip_trampoline_code (CORE_ADDR pc, char *name);
+extern CORE_ADDR i386_skip___main_call (struct gdbarch *gdbarch, CORE_ADDR pc);
 
 /* Return the name of register REGNUM.  */
 extern char const *i386_register_name (struct gdbarch * gdbarch, int regnum);
Index: src/gdb/symtab.c
===================================================================
--- src.orig/gdb/symtab.c	2008-01-29 04:39:16.000000000 +0000
+++ src/gdb/symtab.c	2008-01-29 04:39:40.000000000 +0000
@@ -2506,6 +2506,21 @@ find_function_start_sal (struct symbol *
       /* Recalculate the line number (might not be N+1).  */
       sal = find_pc_sect_line (pc, SYMBOL_BFD_SECTION (sym), 0);
     }
+
+  /* On targets with executable formats that don't have a concept of
+     constructors (ELF with .init has, PE doesn't), gcc emits a call
+     to `__main' in `main' between the prologue and before user
+     code.  */
+  if (funfirstline
+      && gdbarch_skip___main_call_p (current_gdbarch)
+      && SYMBOL_LINKAGE_NAME (sym)
+      && strcmp (SYMBOL_LINKAGE_NAME (sym), "main") == 0)
+    {
+      pc = gdbarch_skip___main_call (current_gdbarch, pc);
+      /* Recalculate the line number (might not be N+1).  */
+      sal = find_pc_sect_line (pc, SYMBOL_BFD_SECTION (sym), 0);
+    }
+
   sal.pc = pc;
 
   return sal;

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: skip __main
  2008-01-29  5:35 skip __main Pedro Alves
@ 2008-01-29  8:50 ` Pierre Muller
  2008-01-29 15:48   ` Pedro Alves
  0 siblings, 1 reply; 5+ messages in thread
From: Pierre Muller @ 2008-01-29  8:50 UTC (permalink / raw)
  To: 'Pedro Alves', 'gdb-patches'

Hi Pedro!

  Thanks for resubmitting this.

  The problem for me is that I am currently 
unable to do a testsuite on cygwin,
the test stays forever on gdb.threads/manythreads.exp
test and the timeout does not seem to work there :(

  Concerning your patch:
  I would suggest one change:
instead of using hard coded "main" name,
you should use the main_name function from symtab.c source
defined in symtab.h
  I am not really sure this is useful,
(the modified main_name for GNU pascal compiler
does not contain a call to __main), but
it seems more logical to me.

  
Pierre
 

> -----Original Message-----
> From: gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] On Behalf Of Pedro Alves
> Sent: Tuesday, January 29, 2008 6:25 AM
> To: Pierre Muller; gdb-patches
> Subject: skip __main
> 
> Hi all, Pierre,
> 
> Here's the much smaller patch I mentioned at gdb@.
> 
> This version is about as small as it can get.  First the prologue is
> analysed and skipped, then line info is used to get at the first line
> of user code in the function.  If the function is called "main" (humm,
> I shall move that into the callback, as I believe the place where
> __main/__gccmain is emitted is configurable on the gcc side), call a
> gdbarch method that skips the __main call.  Works OK as long as nothing
> is scheduled into before the __main call.  That means that it should
> work OK at -O0, which is enough for fixing the runto_main problems in
> the testsuite.  Then again, debugging code with .stabs debug info at
> anything but -O0 is not pleasant anyway.
> 
> Last time I looked at the results, it uncovered other more serious
> problems, so it was a win just for that fact.
> 
> I'm starting an overnight testrun on Cygwin, as the last time I did
> that was a couple of months back.
> 
> Any comments?  Suggestions for a better gdbarch callback name?
> 
> --
> Pedro Alves



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: skip __main
  2008-01-29  8:50 ` Pierre Muller
@ 2008-01-29 15:48   ` Pedro Alves
  2008-01-29 16:20     ` Pierre Muller
  0 siblings, 1 reply; 5+ messages in thread
From: Pedro Alves @ 2008-01-29 15:48 UTC (permalink / raw)
  To: Pierre Muller; +Cc: 'gdb-patches'

[-- Attachment #1: Type: text/plain, Size: 1072 bytes --]

Pierre Muller wrote:
> 
>   The problem for me is that I am currently 
> unable to do a testsuite on cygwin,
> the test stays forever on gdb.threads/manythreads.exp
> test and the timeout does not seem to work there :(
> 

Wild guess: nasty Anti-virus or anti-spyware doing
nasty things?

>   Concerning your patch:
>   I would suggest one change:
> instead of using hard coded "main" name,
> you should use the main_name function from symtab.c source
> defined in symtab.h

>   I am not really sure this is useful,
> (the modified main_name for GNU pascal compiler
> does not contain a call to __main), but
> it seems more logical to me.
> 

The pascal runtime would have an implementation of "main"
somewhere, which is where the __main call is inserted, before
reaching any pascal user code.

I just checked that gcc only emits the call on a identifier
called "main", which means that there is no point currently in
moving the "main" detection into the callback.

Here is result diff of the overnight test.  I'm running it
again to confirm the results.

-- 
Pedro Alves

[-- Attachment #2: skip_main_results.diff --]
[-- Type: text/x-diff, Size: 43797 bytes --]

--- 0/gdb.sum	2008-01-29 07:00:42.000000000 +0000
+++ 1/gdb.sum	2008-01-29 07:54:20.000000000 +0000
@@ -1,4 +1,4 @@
-Test Run By Sandra on Tue Jan 29 06:15:43 2008
+Test Run By Sandra on Tue Jan 29 07:14:33 2008
 Native configuration is i686-pc-cygwin
 
 		=== gdb tests ===
@@ -227,22 +227,22 @@ PASS: gdb.arch/i386-prologue.exp: backtr
 PASS: gdb.arch/i386-prologue.exp: saved registers in gdb1338
 PASS: gdb.arch/i386-prologue.exp: check jump_at_beginning prologue end
 Running src/gdb/testsuite/gdb.arch/i386-signal.exp ...
-gdb compile failed, /cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/cc6pNFyT.o: In function `main':
+gdb compile failed, /cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccDfqlPj.o: In function `main':
 src/gdb/testsuite/gdb.arch/i386-signal.c:31: undefined reference to `_setup'
 src/gdb/testsuite/gdb.arch/i386-signal.c:32: undefined reference to `func'
 collect2: ld returned 1 exit status
 UNTESTED: gdb.arch/i386-signal.exp: i386-sigframe.exp
 Running src/gdb/testsuite/gdb.arch/i386-size-overlap.exp ...
-gdb compile failed, /cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccve0Q9s.s: Assembler messages:
-/cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccve0Q9s.s:58: Warning: .size pseudo-op used outside of .def/.endef ignored.
-/cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccve0Q9s.s:58: Error: junk at end of line, first unrecognized character is `_'
-/cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccve0Q9s.s:63: Warning: .size pseudo-op used outside of .def/.endef ignored.
-/cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccve0Q9s.s:63: Error: junk at end of line, first unrecognized character is `_'
+gdb compile failed, /cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccUMWlNJ.s: Assembler messages:
+/cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccUMWlNJ.s:58: Warning: .size pseudo-op used outside of .def/.endef ignored.
+/cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccUMWlNJ.s:58: Error: junk at end of line, first unrecognized character is `_'
+/cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccUMWlNJ.s:63: Warning: .size pseudo-op used outside of .def/.endef ignored.
+/cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccUMWlNJ.s:63: Error: junk at end of line, first unrecognized character is `_'
 UNTESTED: gdb.arch/i386-size-overlap.exp: i386-size
 Running src/gdb/testsuite/gdb.arch/i386-size.exp ...
-gdb compile failed, /cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccbYZuzQ.s: Assembler messages:
-/cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccbYZuzQ.s:56: Warning: .size pseudo-op used outside of .def/.endef ignored.
-/cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccbYZuzQ.s:56: Error: junk at end of line, first unrecognized character is `_'
+gdb compile failed, /cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccImEDMa.s: Assembler messages:
+/cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccImEDMa.s:56: Warning: .size pseudo-op used outside of .def/.endef ignored.
+/cygdrive/c/DOCUME~1/Sandra/LOCALS~1/Temp/ccImEDMa.s:56: Error: junk at end of line, first unrecognized character is `_'
 UNTESTED: gdb.arch/i386-size.exp: i386-size
 Running src/gdb/testsuite/gdb.arch/i386-sse.exp ...
 PASS: gdb.arch/i386-sse.exp: check whether processor supports SSE
@@ -331,26 +331,26 @@ PASS: gdb.base/advance.exp: continue to 
 PASS: gdb.base/advance.exp: advance function called as param
 PASS: gdb.base/advance.exp: advance with no argument
 Running src/gdb/testsuite/gdb.base/all-bin.exp ...
-FAIL: gdb.base/all-bin.exp: continuing after dummy()
-FAIL: gdb.base/all-bin.exp: print value of v_int+v_char
-FAIL: gdb.base/all-bin.exp: print value of v_int+v_short
-FAIL: gdb.base/all-bin.exp: print value of v_int+v_signed_char
-FAIL: gdb.base/all-bin.exp: print value of v_int+v_unsigned_char
-FAIL: gdb.base/all-bin.exp: print value of v_int+v_signed_short
-FAIL: gdb.base/all-bin.exp: print value of v_int+v_unsigned_short
-FAIL: gdb.base/all-bin.exp: print value of v_int+v_signed_int
-FAIL: gdb.base/all-bin.exp: print value of v_int+v_unsigned_int
-FAIL: gdb.base/all-bin.exp: print value of v_int+v_long
-FAIL: gdb.base/all-bin.exp: print value of v_int+v_signed_long
-FAIL: gdb.base/all-bin.exp: print value of v_int+v_unsigned_long
-FAIL: gdb.base/all-bin.exp: print value of v_int+v_float
-FAIL: gdb.base/all-bin.exp: print value of v_int+v_double
+PASS: gdb.base/all-bin.exp: continuing after dummy()
+PASS: gdb.base/all-bin.exp: print value of v_int+v_char
+PASS: gdb.base/all-bin.exp: print value of v_int+v_short
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_char
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_char
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_short
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_short
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_int
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_int
+PASS: gdb.base/all-bin.exp: print value of v_int+v_long
+PASS: gdb.base/all-bin.exp: print value of v_int+v_signed_long
+PASS: gdb.base/all-bin.exp: print value of v_int+v_unsigned_long
+PASS: gdb.base/all-bin.exp: print value of v_int+v_float
+PASS: gdb.base/all-bin.exp: print value of v_int+v_double
 PASS: gdb.base/all-bin.exp: print value of v_int<=v_char
-FAIL: gdb.base/all-bin.exp: print value of v_int<=v_short
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_short
 PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_char
 PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_char
-FAIL: gdb.base/all-bin.exp: print value of v_int<=v_signed_short
-FAIL: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_short
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_short
+PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_short
 PASS: gdb.base/all-bin.exp: print value of v_int<=v_signed_int
 PASS: gdb.base/all-bin.exp: print value of v_int<=v_unsigned_int
 PASS: gdb.base/all-bin.exp: print value of v_int<=v_long
@@ -362,17 +362,17 @@ PASS: gdb.base/all-bin.exp: set v_char=0
 PASS: gdb.base/all-bin.exp: set v_double=0
 PASS: gdb.base/all-bin.exp: set v_unsigned_long=0
 PASS: gdb.base/all-bin.exp: print value of v_int&&v_char
-FAIL: gdb.base/all-bin.exp: print value of v_int&&v_short
-FAIL: gdb.base/all-bin.exp: print value of v_int&&v_signed_char
-FAIL: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_char
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_short
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_char
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_char
 PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_short
-FAIL: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_short
-FAIL: gdb.base/all-bin.exp: print value of v_int&&v_signed_int
-FAIL: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_int
-FAIL: gdb.base/all-bin.exp: print value of v_int&&v_long
-FAIL: gdb.base/all-bin.exp: print value of v_int&&v_signed_long
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_short
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_int
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_int
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_long
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_signed_long
 PASS: gdb.base/all-bin.exp: print value of v_int&&v_unsigned_long
-FAIL: gdb.base/all-bin.exp: print value of v_int&&v_float
+PASS: gdb.base/all-bin.exp: print value of v_int&&v_float
 PASS: gdb.base/all-bin.exp: print value of v_int&&v_double
 Running src/gdb/testsuite/gdb.base/annota1.exp ...
 Running src/gdb/testsuite/gdb.base/annota3.exp ...
@@ -444,7 +444,7 @@ PASS: gdb.base/arrayidx.exp: Print array
 PASS: gdb.base/arrayidx.exp: Set print array-indexes to on
 PASS: gdb.base/arrayidx.exp: Print array with array-indexes on
 Running src/gdb/testsuite/gdb.base/assign.exp ...
-FAIL: gdb.base/assign.exp: continuing after dummy()
+PASS: gdb.base/assign.exp: continuing after dummy()
 PASS: gdb.base/assign.exp: v_int=57
 PASS: gdb.base/assign.exp: set v_int to 6
 PASS: gdb.base/assign.exp: v_int+=57
@@ -457,31 +457,31 @@ PASS: gdb.base/assign.exp: v_int/=4
 PASS: gdb.base/assign.exp: set v_int to 6
 PASS: gdb.base/assign.exp: v_int%=4
 PASS: gdb.base/assign.exp: set v_int to 6
-FAIL: gdb.base/assign.exp: v_int+=v_char
+PASS: gdb.base/assign.exp: v_int+=char
 PASS: gdb.base/assign.exp: set v_int to 6
-FAIL: gdb.base/assign.exp: v_int+=v_signed_char
+PASS: gdb.base/assign.exp: v_int+=signed_char
 PASS: gdb.base/assign.exp: set v_int to 6
-FAIL: gdb.base/assign.exp: v_int+=v_unsigned_char
+PASS: gdb.base/assign.exp: v_int+=unsigned_char
 PASS: gdb.base/assign.exp: set v_int to 6
-FAIL: gdb.base/assign.exp: v_int+=v_short
+PASS: gdb.base/assign.exp: v_int+=short
 PASS: gdb.base/assign.exp: set v_int to 6
-FAIL: gdb.base/assign.exp: v_int+=v_signed_short
+PASS: gdb.base/assign.exp: v_int+=signed_short
 PASS: gdb.base/assign.exp: set v_int to 6
-FAIL: gdb.base/assign.exp: v_int+=v_unsigned_short
+PASS: gdb.base/assign.exp: v_int=+unsigned_short
 PASS: gdb.base/assign.exp: set v_int to 6
-FAIL: gdb.base/assign.exp: v_int+=v_signed_int
+PASS: gdb.base/assign.exp: v_int+=signed_int
 PASS: gdb.base/assign.exp: set v_int to 6
-FAIL: gdb.base/assign.exp: v_int+=v_unsigned_int
+PASS: gdb.base/assign.exp: v_int+=unsigned_int
 PASS: gdb.base/assign.exp: set v_int to 6
-FAIL: gdb.base/assign.exp: v_int+=v_long
+PASS: gdb.base/assign.exp: v_int+=long
 PASS: gdb.base/assign.exp: set v_int to 6
-FAIL: gdb.base/assign.exp: v_int+=v_signed_long
+PASS: gdb.base/assign.exp: v_int+=signed_long
 PASS: gdb.base/assign.exp: set v_int to 6
-FAIL: gdb.base/assign.exp: v_int+=v_unsigned_long
+PASS: gdb.base/assign.exp: v_int+=unsigned_long
 PASS: gdb.base/assign.exp: set v_int to 6
-FAIL: gdb.base/assign.exp: v_int+=v_float
+PASS: gdb.base/assign.exp: v_int+=v_float
 PASS: gdb.base/assign.exp: set v_int to 6
-FAIL: gdb.base/assign.exp: v_int+=v_double
+PASS: gdb.base/assign.exp: v_int+=double
 Running src/gdb/testsuite/gdb.base/async.exp ...
 Running src/gdb/testsuite/gdb.base/attach.exp ...
 Running src/gdb/testsuite/gdb.base/auxv.exp ...
@@ -623,8 +623,8 @@ PASS: gdb.base/break.exp: breakpoint dup
 PASS: gdb.base/break.exp: breakpoint line number in file
 PASS: gdb.base/break.exp: breakpoint at start of multi line if conditional
 PASS: gdb.base/break.exp: breakpoint at start of multi line while conditional
-FAIL: gdb.base/break.exp: breakpoint info
-FAIL: gdb.base/break.exp: run until function breakpoint
+PASS: gdb.base/break.exp: breakpoint info
+PASS: gdb.base/break.exp: run until function breakpoint
 PASS: gdb.base/break.exp: run until breakpoint set at a line number
 PASS: gdb.base/break.exp: run until file:function(6) breakpoint
 PASS: gdb.base/break.exp: run until file:function(5) breakpoint
@@ -644,7 +644,7 @@ PASS: gdb.base/break.exp: Temporary brea
 PASS: gdb.base/break.exp: Temporary breakpoint line number #2
 PASS: gdb.base/break.exp: Temporary breakpoint line number in file #1
 PASS: gdb.base/break.exp: Temporary breakpoint line number in file #2
-FAIL: gdb.base/break.exp: Temporary breakpoint info
+PASS: gdb.base/break.exp: Temporary breakpoint info
 PASS: gdb.base/break.exp: catch requires an event name
 PASS: gdb.base/break.exp: set catch fork, never expected to trigger
 PASS: gdb.base/break.exp: set catch vfork, never expected to trigger
@@ -882,17 +882,17 @@ PASS: gdb.base/call-sc.exp: finish foo; 
 PASS: gdb.base/call-sc.exp: value foo finished; return call-sc-te
 PASS: gdb.base/call-sc.exp: return and finish use same convention; return call-sc-te
 Running src/gdb/testsuite/gdb.base/call-strs.exp ...
-FAIL: gdb.base/call-strs.exp: step after assignment to s
-FAIL: gdb.base/call-strs.exp: next over strcpy
-FAIL: gdb.base/call-strs.exp: print buf
-FAIL: gdb.base/call-strs.exp: print s
+PASS: gdb.base/call-strs.exp: step after assignment to s
+PASS: gdb.base/call-strs.exp: next over strcpy
+PASS: gdb.base/call-strs.exp: print buf
+PASS: gdb.base/call-strs.exp: print s
 Running src/gdb/testsuite/gdb.base/callfuncs.exp ...
 PASS: gdb.base/callfuncs.exp: set print sevenbit-strings
 PASS: gdb.base/callfuncs.exp: set print address off
 PASS: gdb.base/callfuncs.exp: set width 0
 PASS: gdb.base/callfuncs.exp: set language to "c"
-FAIL: gdb.base/callfuncs.exp: next to t_double_values
-FAIL: gdb.base/callfuncs.exp: next to t_structs_c
+PASS: gdb.base/callfuncs.exp: next to t_double_values
+PASS: gdb.base/callfuncs.exp: next to t_structs_c
 PASS: gdb.base/callfuncs.exp: retrieve original register contents
 PASS: gdb.base/callfuncs.exp: p t_char_values(0,0)
 PASS: gdb.base/callfuncs.exp: p t_char_values('a','b')
@@ -1430,7 +1430,7 @@ PASS: gdb.base/condbreak.exp: delete 3
 PASS: gdb.base/condbreak.exp: break marker1 if (1==1)
 PASS: gdb.base/condbreak.exp: break break.c:93 if (1==1)
 PASS: gdb.base/condbreak.exp: break marker2 if (a==43)
-FAIL: gdb.base/condbreak.exp: breakpoint info
+PASS: gdb.base/condbreak.exp: breakpoint info
 PASS: gdb.base/condbreak.exp: rerun to main
 PASS: gdb.base/condbreak.exp: run until breakpoint set at a line number
 PASS: gdb.base/condbreak.exp: run until breakpoint at marker1
@@ -1545,13 +1545,13 @@ Running src/gdb/testsuite/gdb.base/coref
 WARNING: can't generate a core file - core tests suppressed - check ulimit -c
 Running src/gdb/testsuite/gdb.base/cursal.exp ...
 PASS: gdb.base/cursal.exp: set listsize 1
-FAIL: gdb.base/cursal.exp: list before run
-FAIL: gdb.base/cursal.exp: list in main
+PASS: gdb.base/cursal.exp: list before run
+PASS: gdb.base/cursal.exp: list in main
 PASS: gdb.base/cursal.exp: list in func2
 PASS: gdb.base/cursal.exp: backtrace
 PASS: gdb.base/cursal.exp: list after backtrace
 PASS: gdb.base/cursal.exp: set listsize 3
-FAIL: gdb.base/cursal.exp: list size 3
+PASS: gdb.base/cursal.exp: list size 3
 Running src/gdb/testsuite/gdb.base/cvexpr.exp ...
 PASS: gdb.base/cvexpr.exp: (const char)
 PASS: gdb.base/cvexpr.exp: (const signed char)
@@ -1666,8 +1666,8 @@ PASS: gdb.base/cvexpr.exp: (const union 
 PASS: gdb.base/cvexpr.exp: (struct t_struct const * const)
 PASS: gdb.base/cvexpr.exp: (union t_union const * const)
 Running src/gdb/testsuite/gdb.base/dbx.exp ...
-FAIL: gdb.base/dbx.exp: stop in main
-FAIL: gdb.base/dbx.exp: status
+PASS: gdb.base/dbx.exp: stop in main
+PASS: gdb.base/dbx.exp: status
 PASS: gdb.base/dbx.exp: stop at average.c:43
 PASS: gdb.base/dbx.exp: stop in average.c:43
 PASS: gdb.base/dbx.exp: stop at main
@@ -1942,7 +1942,7 @@ PASS: gdb.base/default.exp: where
 PASS: gdb.base/default.exp: x
 Running src/gdb/testsuite/gdb.base/define.exp ...
 PASS: gdb.base/define.exp: define user command: nextwhere
-FAIL: gdb.base/define.exp: use user command: nextwhere
+PASS: gdb.base/define.exp: use user command: nextwhere
 PASS: gdb.base/define.exp: define user command: nextwh
 PASS: gdb.base/define.exp: redefine user command aborted: nextwhere
 PASS: gdb.base/define.exp: redefine user command: nextwhere
@@ -1956,7 +1956,7 @@ PASS: gdb.base/define.exp: define user c
 PASS: gdb.base/define.exp: test whilenospace is parsed correctly
 PASS: gdb.base/define.exp: define user command: user-bt
 PASS: gdb.base/define.exp: define hook-stop command
-FAIL: gdb.base/define.exp: use hook-stop command
+PASS: gdb.base/define.exp: use hook-stop command
 PASS: gdb.base/define.exp: define hook undefined command aborted: bar
 PASS: gdb.base/define.exp: define hook undefined command: bar
 PASS: gdb.base/define.exp: set gdb_prompt
@@ -2945,8 +2945,8 @@ PASS: gdb.base/gdb1090.exp: print s24
 Running src/gdb/testsuite/gdb.base/gdb1250.exp ...
 PASS: gdb.base/gdb1250.exp: backtrace from abort
 Running src/gdb/testsuite/gdb.base/gdb1555.exp ...
-FAIL: gdb.base/gdb1555.exp: Step into shared lib function
-FAIL: gdb.base/gdb1555.exp: Next while in a shared lib function
+PASS: gdb.base/gdb1555.exp: Step into shared lib function
+PASS: gdb.base/gdb1555.exp: Next while in a shared lib function
 Running src/gdb/testsuite/gdb.base/gdb1821.exp ...
 PASS: gdb.base/gdb1821.exp: print /x bar
 Running src/gdb/testsuite/gdb.base/gdbvars.exp ...
@@ -3646,7 +3646,7 @@ PASS: gdb.base/maint.exp: maint info sec
 PASS: gdb.base/maint.exp: maint info sections .text
 PASS: gdb.base/maint.exp: maint info sections CODE
 XFAIL: gdb.base/maint.exp: maint info sections DATA
-FAIL: gdb.base/maint.exp: maint info breakpoints
+PASS: gdb.base/maint.exp: maint info breakpoints
 PASS: gdb.base/maint.exp: maint print w/o args
 PASS: gdb.base/maint.exp: maint info w/o args
 PASS: gdb.base/maint.exp: maint w/o args
@@ -3764,21 +3764,21 @@ PASS: gdb.base/pc-fp.exp: display/w $fp
 Running src/gdb/testsuite/gdb.base/pending.exp ...
 PASS: gdb.base/pending.exp: set pending breakpoint
 PASS: gdb.base/pending.exp: single pending breakpoint info
-FAIL: gdb.base/pending.exp: breakpoint function
-FAIL: gdb.base/pending.exp: pending plus real breakpoint info
+PASS: gdb.base/pending.exp: breakpoint function
+PASS: gdb.base/pending.exp: pending plus real breakpoint info
 PASS: gdb.base/pending.exp: Don't set pending breakpoint
 PASS: gdb.base/pending.exp: condition 1 k == 1
-FAIL: gdb.base/pending.exp: pending plus condition
+PASS: gdb.base/pending.exp: pending plus condition
 PASS: gdb.base/pending.exp: disable 1
-FAIL: gdb.base/pending.exp: pending disabled
+PASS: gdb.base/pending.exp: pending disabled
 PASS: gdb.base/pending.exp: Set commands for pending breakpoint
-FAIL: gdb.base/pending.exp: pending disabled plus commands
+PASS: gdb.base/pending.exp: pending disabled plus commands
 PASS: gdb.base/pending.exp: Set pending breakpoint 2
-FAIL: gdb.base/pending.exp: multiple pending breakpoints
+PASS: gdb.base/pending.exp: multiple pending breakpoints
 PASS: gdb.base/pending.exp: Set pending breakpoint 3
 PASS: gdb.base/pending.exp: set ignore count on pending breakpoint 3
-FAIL: gdb.base/pending.exp: multiple pending breakpoints 2
-FAIL: gdb.base/pending.exp: running to main
+PASS: gdb.base/pending.exp: multiple pending breakpoints 2
+PASS: gdb.base/pending.exp: running to main
 PASS: gdb.base/pending.exp: re-enabling pending breakpoint that can resolve instantly
 PASS: gdb.base/pending.exp: continue to resolved breakpoint 2
 PASS: gdb.base/pending.exp: continue to resolved breakpoint 1
@@ -3787,13 +3787,13 @@ PASS: gdb.base/pending.exp: Disable othe
 PASS: gdb.base/pending.exp: continue to resolved breakpoint 3
 PASS: gdb.base/pending.exp: set imaginary pending breakpoint
 PASS: gdb.base/pending.exp: rerun to main
-FAIL: gdb.base/pending.exp: verify pending breakpoint after restart
+PASS: gdb.base/pending.exp: verify pending breakpoint after restart
 Running src/gdb/testsuite/gdb.base/pointers.exp ...
-FAIL: gdb.base/pointers.exp: continuing after dummy()
+PASS: gdb.base/pointers.exp: continuing after dummy()
 PASS: gdb.base/pointers.exp: set pointer to beginning of array
 PASS: gdb.base/pointers.exp: set pointer to end of array
-FAIL: gdb.base/pointers.exp: print object pointed to
-FAIL: gdb.base/pointers.exp: print object pointed to
+PASS: gdb.base/pointers.exp: print object pointed to
+PASS: gdb.base/pointers.exp: print object pointed to
 PASS: gdb.base/pointers.exp: pointer1==pointer2
 PASS: gdb.base/pointers.exp: pointer1!=pointer2
 PASS: gdb.base/pointers.exp: pointer1<=pointer2
@@ -3801,14 +3801,14 @@ PASS: gdb.base/pointers.exp: pointer1>=p
 PASS: gdb.base/pointers.exp: pointer1<pointer2
 PASS: gdb.base/pointers.exp: pointer1>pointer2
 PASS: gdb.base/pointers.exp: set y = *v_int_pointer++
-FAIL: gdb.base/pointers.exp: pointer assignment and increment
+PASS: gdb.base/pointers.exp: pointer assignment and increment
 PASS: gdb.base/pointers.exp: set y = *--v_int_pointer2
-FAIL: gdb.base/pointers.exp: pointer decrement and assignment
+PASS: gdb.base/pointers.exp: pointer decrement and assignment
 PASS: gdb.base/pointers.exp: set y =v_int_pointer-v_int_pointer2
 PASS: gdb.base/pointers.exp: pointer1-pointer2
 PASS: gdb.base/pointers.exp: set v_int_pointer=v_int_array
-FAIL: gdb.base/pointers.exp: print array element through pointer
-FAIL: gdb.base/pointers.exp: print array element through pointer
+PASS: gdb.base/pointers.exp: print array element through pointer
+PASS: gdb.base/pointers.exp: print array element through pointer
 PASS: gdb.base/pointers.exp: print array element through pointer
 PASS: gdb.base/pointers.exp: print array element through pointer
 PASS: gdb.base/pointers.exp: print array element through pointer
@@ -3817,7 +3817,7 @@ PASS: gdb.base/pointers.exp: print array
 PASS: gdb.base/pointers.exp: print array element through pointer
 PASS: gdb.base/pointers.exp: print array element through pointer
 PASS: gdb.base/pointers.exp: print array element w/ pointer arithmetic
-FAIL: gdb.base/pointers.exp: print through ptr to ptr
+PASS: gdb.base/pointers.exp: print through ptr to ptr
 PASS: gdb.base/pointers.exp: continue to marker1
 PASS: gdb.base/pointers.exp: up from marker1
 PASS: gdb.base/pointers.exp: print value of *pUC
@@ -5132,15 +5132,15 @@ Running src/gdb/testsuite/gdb.base/scope
 PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_ro
 UNSUPPORTED: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss before run
 PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal before run
-FAIL: gdb.base/scope.exp: next over init0() in main
+PASS: gdb.base/scope.exp: next over init0() in main
 PASS: gdb.base/scope.exp: print filelocal
 PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal at main
-FAIL: gdb.base/scope.exp: print filelocal_bss
-FAIL: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss in test_at_main
+PASS: gdb.base/scope.exp: print filelocal_bss
+PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss in test_at_main
 PASS: gdb.base/scope.exp: print filelocal_ro in test_at_main
 PASS: gdb.base/scope.exp: print 'scope0.c'::filelocal_ro
 PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal
-FAIL: gdb.base/scope.exp: print 'scope1.c'::filelocal_bss
+PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_bss
 PASS: gdb.base/scope.exp: print 'scope1.c'::filelocal_ro
 PASS: gdb.base/scope.exp: print foo::funclocal
 PASS: gdb.base/scope.exp: print 'scope1.c'::foo::funclocal
@@ -5226,8 +5226,8 @@ PASS: gdb.base/sepdebug.exp: breakpoint 
 PASS: gdb.base/sepdebug.exp: breakpoint line number in file
 PASS: gdb.base/sepdebug.exp: breakpoint at start of multi line if conditional
 PASS: gdb.base/sepdebug.exp: breakpoint at start of multi line while conditional
-FAIL: gdb.base/sepdebug.exp: breakpoint info
-FAIL: gdb.base/sepdebug.exp: run until function breakpoint
+PASS: gdb.base/sepdebug.exp: breakpoint info
+PASS: gdb.base/sepdebug.exp: run until function breakpoint
 PASS: gdb.base/sepdebug.exp: run until breakpoint set at a line number
 PASS: gdb.base/sepdebug.exp: run until file:function(6) breakpoint
 PASS: gdb.base/sepdebug.exp: run until file:function(5) breakpoint
@@ -5245,7 +5245,7 @@ PASS: gdb.base/sepdebug.exp: Temporary b
 PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number #2
 PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number in file #1
 PASS: gdb.base/sepdebug.exp: Temporary breakpoint line number in file #2
-FAIL: gdb.base/sepdebug.exp: Temporary breakpoint info
+PASS: gdb.base/sepdebug.exp: Temporary breakpoint info
 PASS: gdb.base/sepdebug.exp: catch requires an event name
 PASS: gdb.base/sepdebug.exp: set catch fork, never expected to trigger
 PASS: gdb.base/sepdebug.exp: set catch vfork, never expected to trigger
@@ -5291,7 +5291,7 @@ PASS: gdb.base/sepdebug.exp: continue un
 PASS: gdb.base/sepdebug.exp: debuglink: set separate debug location
 PASS: gdb.base/sepdebug.exp: debuglink: breakpoint function, optimized file
 PASS: gdb.base/sepdebug.exp: debuglink: breakpoint small function, optimized file
-PASS: gdb.base/sepdebug.exp: debuglink: run until function breakpoint, optimized file (code motion)
+PASS: gdb.base/sepdebug.exp: debuglink: run until function breakpoint, optimized file
 PASS: gdb.base/sepdebug.exp: debuglink: run until breakpoint set at small function, optimized file
 UNSUPPORTED: gdb.base/sepdebug.exp: build-id is not supported by the compiler
 Running src/gdb/testsuite/gdb.base/sepsymtab.exp ...
@@ -5502,9 +5502,9 @@ PASS: gdb.base/setvar.exp: print uef.fie
 PASS: gdb.base/setvar.exp: print sef.field=7
 PASS: gdb.base/setvar.exp: print uef.field=6
 Running src/gdb/testsuite/gdb.base/shlib-call.exp ...
-FAIL: gdb.base/shlib-call.exp: next to shr1
-FAIL: gdb.base/shlib-call.exp: print  g
-FAIL: gdb.base/shlib-call.exp: print  g
+PASS: gdb.base/shlib-call.exp: next to shr1
+PASS: gdb.base/shlib-call.exp: print g
+PASS: gdb.base/shlib-call.exp: print g
 PASS: gdb.base/shlib-call.exp: breakpoint function shr2
 PASS: gdb.base/shlib-call.exp: run until breakpoint set at a function
 PASS: gdb.base/shlib-call.exp: print mainshr1(1) from shlib func
@@ -5547,10 +5547,10 @@ Running src/gdb/testsuite/gdb.base/sigre
 Running src/gdb/testsuite/gdb.base/sigstep.exp ...
 Running src/gdb/testsuite/gdb.base/sizeof.exp ...
 Running src/gdb/testsuite/gdb.base/so-impl-ld.exp ...
-FAIL: gdb.base/so-impl-ld.exp: step over solib call
-FAIL: gdb.base/so-impl-ld.exp: step into solib call
+PASS: gdb.base/so-impl-ld.exp: step over solib call
+PASS: gdb.base/so-impl-ld.exp: step into solib call
 PASS: gdb.base/so-impl-ld.exp: step in solib call
-FAIL: gdb.base/so-impl-ld.exp: step out of solib call
+PASS: gdb.base/so-impl-ld.exp: step out of solib call
 Running src/gdb/testsuite/gdb.base/so-indr-cl.exp ...
 Running src/gdb/testsuite/gdb.base/solib-disc.exp ...
 Running src/gdb/testsuite/gdb.base/solib-symbol.exp ...
@@ -5589,19 +5589,19 @@ PASS: gdb.base/step-line.exp: next to du
 PASS: gdb.base/step-line.exp: next to dummy 10
 PASS: gdb.base/step-line.exp: next over dummy 10
 Running src/gdb/testsuite/gdb.base/step-test.exp ...
-FAIL: gdb.base/step-test.exp: next 1
-FAIL: gdb.base/step-test.exp: step 1
-FAIL: gdb.base/step-test.exp: next 2
-FAIL: gdb.base/step-test.exp: step 3
-FAIL: gdb.base/step-test.exp: next 3
-FAIL: gdb.base/step-test.exp: next over
+PASS: gdb.base/step-test.exp: next 1
+PASS: gdb.base/step-test.exp: step 1
+PASS: gdb.base/step-test.exp: next 2
+PASS: gdb.base/step-test.exp: step 3
+PASS: gdb.base/step-test.exp: next 3
+PASS: gdb.base/step-test.exp: next over
 PASS: gdb.base/step-test.exp: step into
-FAIL: gdb.base/step-test.exp: step out
-FAIL: gdb.base/step-test.exp: stepi to next line
-FAIL: gdb.base/step-test.exp: stepi into function
+PASS: gdb.base/step-test.exp: step out
+PASS: gdb.base/step-test.exp: stepi to next line
+PASS: gdb.base/step-test.exp: stepi into function
 PASS: gdb.base/step-test.exp: stepi into function's first source line
-FAIL: gdb.base/step-test.exp: stepi: finish call
-FAIL: gdb.base/step-test.exp: nexti over function
+PASS: gdb.base/step-test.exp: stepi: finish call
+PASS: gdb.base/step-test.exp: nexti over function
 PASS: gdb.base/step-test.exp: set breakpoint at call to large_struct_by_value
 PASS: gdb.base/step-test.exp: run to pass large struct
 PASS: gdb.base/step-test.exp: large struct by value
@@ -6467,7 +6467,7 @@ PASS: gdb.base/structs.exp: value foo<n>
 PASS: gdb.base/structs.exp: return value known implies finish value known; return 2 structs-tf-td
 Running src/gdb/testsuite/gdb.base/structs2.exp ...
 PASS: gdb.base/structs2.exp: set width 0
-FAIL: gdb.base/structs2.exp: structs2 sanity check (PRMS 13536)
+PASS: gdb.base/structs2.exp: structs2 sanity check (PRMS 13536)
 PASS: gdb.base/structs2.exp: structs2 breakpoint set (PRMS 13536)
 PASS: gdb.base/structs2.exp: structs2 continue1 (PRMS 13536)
 PASS: gdb.base/structs2.exp: structs2 continue2 (PRMS 13536)
@@ -6514,7 +6514,7 @@ FAIL: gdb.base/trace-commands.exp: neste
 FAIL: gdb.base/trace-commands.exp: depth resets on error part 1 (pattern 1)
 FAIL: gdb.base/trace-commands.exp: depth resets on error part 2
 Running src/gdb/testsuite/gdb.base/twice.exp ...
-FAIL: gdb.base/twice.exp: step
+PASS: gdb.base/twice.exp: step
 Running src/gdb/testsuite/gdb.base/type-opaque.exp ...
 FAIL: gdb.base/type-opaque.exp: opaque struct type resolving
 PASS: gdb.base/type-opaque.exp: empty struct type resolving
@@ -6774,28 +6774,28 @@ Running src/gdb/testsuite/gdb.cp/ambiguo
 Running src/gdb/testsuite/gdb.cp/annota2.exp ...
 Running src/gdb/testsuite/gdb.cp/annota3.exp ...
 Running src/gdb/testsuite/gdb.cp/anon-union.exp ...
-FAIL: gdb.cp/anon-union.exp: next 1
-FAIL: gdb.cp/anon-union.exp: print foo 1
-FAIL: gdb.cp/anon-union.exp: next 1
-FAIL: gdb.cp/anon-union.exp: print foo 2
+PASS: gdb.cp/anon-union.exp: next 1
+PASS: gdb.cp/anon-union.exp: print foo 1
+PASS: gdb.cp/anon-union.exp: next 1
+PASS: gdb.cp/anon-union.exp: print foo 2
 PASS: gdb.cp/anon-union.exp: set var foo.cloth
 PASS: gdb.cp/anon-union.exp: print foo 3
-FAIL: gdb.cp/anon-union.exp: next 2
-FAIL: gdb.cp/anon-union.exp: print foo 4
+PASS: gdb.cp/anon-union.exp: next 2
+PASS: gdb.cp/anon-union.exp: print foo 4
 PASS: gdb.cp/anon-union.exp: set var foo.pebble
-FAIL: gdb.cp/anon-union.exp: print foo 5
+PASS: gdb.cp/anon-union.exp: print foo 5
 PASS: gdb.cp/anon-union.exp: set var foo.qux
-FAIL: gdb.cp/anon-union.exp: print foo 6
+PASS: gdb.cp/anon-union.exp: print foo 6
 PASS: gdb.cp/anon-union.exp: set var foo.mux
-FAIL: gdb.cp/anon-union.exp: print foo 7
+PASS: gdb.cp/anon-union.exp: print foo 7
 PASS: gdb.cp/anon-union.exp: set var foo.x.rock
-FAIL: gdb.cp/anon-union.exp: print foo 8
+PASS: gdb.cp/anon-union.exp: print foo 8
 PASS: gdb.cp/anon-union.exp: set var foo.x.rock2
-FAIL: gdb.cp/anon-union.exp: print foo 9
-FAIL: gdb.cp/anon-union.exp: next 3
+PASS: gdb.cp/anon-union.exp: print foo 9
+PASS: gdb.cp/anon-union.exp: next 3
 FAIL: gdb.cp/anon-union.exp: print w 1
 FAIL: gdb.cp/anon-union.exp: print z 1
-FAIL: gdb.cp/anon-union.exp: next 4
+PASS: gdb.cp/anon-union.exp: next 4
 FAIL: gdb.cp/anon-union.exp: print w 2
 FAIL: gdb.cp/anon-union.exp: print z 2
 PASS: gdb.cp/anon-union.exp: set var z
@@ -8179,10 +8179,10 @@ PASS: gdb.cp/ovldbreak.exp: bp menu for 
 PASS: gdb.cp/ovldbreak.exp: set bp 12 on foo::overload1arg 2 line 121
 PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice 13
 PASS: gdb.cp/ovldbreak.exp: set bp 13 on foo::overload1arg 13 line 110
-FAIL: gdb.cp/ovldbreak.exp: breakpoint info (after setting one-by-one)
+PASS: gdb.cp/ovldbreak.exp: breakpoint info (after setting one-by-one)
 PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice cancel
 PASS: gdb.cp/ovldbreak.exp: set bp on overload1arg canceled
-FAIL: gdb.cp/ovldbreak.exp: breakpoint info (after cancel)
+PASS: gdb.cp/ovldbreak.exp: breakpoint info (after cancel)
 PASS: gdb.cp/ovldbreak.exp: delete all breakpoints
 PASS: gdb.cp/ovldbreak.exp: breakpoint info (after delete)
 PASS: gdb.cp/ovldbreak.exp: bp menu for foo::overload1arg choice all
@@ -8202,16 +8202,16 @@ PASS: gdb.cp/ovldbreak.exp: continue to 
 PASS: gdb.cp/ovldbreak.exp: continue to bp overloaded : double
 PASS: gdb.cp/ovldbreak.exp: continue until exit at finish program
 Running src/gdb/testsuite/gdb.cp/pass-by-ref.exp ...
-FAIL: gdb.cp/pass-by-ref.exp: call function in obj
-FAIL: gdb.cp/pass-by-ref.exp: call function in derived
-FAIL: gdb.cp/pass-by-ref.exp: call function in container
+PASS: gdb.cp/pass-by-ref.exp: call function in obj
+PASS: gdb.cp/pass-by-ref.exp: call function in derived
+PASS: gdb.cp/pass-by-ref.exp: call function in container
 Running src/gdb/testsuite/gdb.cp/pr-1023.exp ...
 PASS: gdb.cp/pr-1023.exp: break myClass::performBlocking
 PASS: gdb.cp/pr-1023.exp: break myClass::performUnblocking
 Running src/gdb/testsuite/gdb.cp/pr-1210.exp ...
-FAIL: gdb.cp/pr-1210.exp: step past initialization
-FAIL: gdb.cp/pr-1210.exp: print *obj
-FAIL: gdb.cp/pr-1210.exp: print obj->myB
+PASS: gdb.cp/pr-1210.exp: step past initialization
+PASS: gdb.cp/pr-1210.exp: print *obj
+PASS: gdb.cp/pr-1210.exp: print obj->myB
 Running src/gdb/testsuite/gdb.cp/pr-574.exp ...
 PASS: gdb.cp/pr-574.exp: continue to breakpoint: end of constructors
 PASS: gdb.cp/pr-574.exp: PR gdb/574
@@ -8312,7 +8312,7 @@ PASS: gdb.cp/templates.exp: ptype t5i
 PASS: gdb.cp/templates.exp: constructor breakpoint
 PASS: gdb.cp/templates.exp: destructor breakpoint
 PASS: gdb.cp/templates.exp: value method breakpoint
-FAIL: gdb.cp/templates.exp: print t5i.value()
+PASS: gdb.cp/templates.exp: print t5i.value()
 PASS: gdb.cp/templates.exp: print fint
 PASS: gdb.cp/templates.exp: print fvpchar
 PASS: gdb.cp/templates.exp: ptype Foo
@@ -8810,11 +8810,11 @@ PASS: gdb.mi/mi-basics.exp: make sure tt
 PASS: gdb.mi/mi-basics.exp: set tty to mi_inferior_tty_name (the way it was)
 PASS: gdb.mi/mi-basics.exp: verify tty is correct
 Running src/gdb/testsuite/gdb.mi/mi-break.exp ...
-FAIL: gdb.mi/mi-break.exp: break-insert -t operation
+PASS: gdb.mi/mi-break.exp: break-insert -t operation
 PASS: gdb.mi/mi-break.exp: insert temp breakpoint at basics.c:callee2
 PASS: gdb.mi/mi-break.exp: insert temp breakpoint at basics.c:$line_callee3_body
 PASS: gdb.mi/mi-break.exp: insert temp breakpoint at "<fullfilename>":$line_callee4_head
-FAIL: gdb.mi/mi-break.exp: list of breakpoints
+PASS: gdb.mi/mi-break.exp: list of breakpoints
 PASS: gdb.mi/mi-break.exp: delete temp breakpoints
 XFAIL: gdb.mi/mi-break.exp: break-insert -r operation
 XFAIL: gdb.mi/mi-break.exp: insert breakpoint with regexp callee2
@@ -8837,7 +8837,7 @@ PASS: gdb.mi/mi-cli.exp: -interpreter-ex
 PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "break callee4"
 PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "info break"
 PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "set listsize 1"
-FAIL: gdb.mi/mi-cli.exp: -interpreter-exec console "list"
+PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "list"
 PASS: gdb.mi/mi-cli.exp: continue to callee4
 PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "delete 2"
 PASS: gdb.mi/mi-cli.exp: -interpreter-exec console "up"
@@ -8862,7 +8862,7 @@ PASS: gdb.mi/mi-disassemble.exp: mi runt
 PASS: gdb.mi/mi-disassemble.exp: data-disassemble from pc to pc+12 assembly only
 PASS: gdb.mi/mi-disassemble.exp: data-disassemble file & line, assembly only
 PASS: gdb.mi/mi-disassemble.exp: data-disassemble file, line assembly mixed
-FAIL: gdb.mi/mi-disassemble.exp: data-disassemble range assembly mixed
+PASS: gdb.mi/mi-disassemble.exp: data-disassemble range assembly mixed
 PASS: gdb.mi/mi-disassemble.exp: data-disassemble bogus filename
 PASS: gdb.mi/mi-disassemble.exp: data-disassemble bogus address
 PASS: gdb.mi/mi-disassemble.exp: data-disassemble mix different args
@@ -8887,7 +8887,7 @@ FAIL: gdb.mi/mi-file-transfer.exp: get b
 FAIL: gdb.mi/mi-file-transfer.exp: compare binary file
 FAIL: gdb.mi/mi-file-transfer.exp: deleted binary file
 Running src/gdb/testsuite/gdb.mi/mi-file.exp ...
-FAIL: gdb.mi/mi-file.exp: request path info of current source file (basics.c)
+PASS: gdb.mi/mi-file.exp: request path info of current source file (basics.c)
 PASS: gdb.mi/mi-file.exp: Getting a list of source files.
 Running src/gdb/testsuite/gdb.mi/mi-hack-cli.exp ...
 PASS: gdb.mi/mi-hack-cli.exp: show architecture
@@ -8914,14 +8914,14 @@ PASS: gdb.mi/mi-pthreads.exp: check_mi_t
 Running src/gdb/testsuite/gdb.mi/mi-read-memory.exp ...
 PASS: gdb.mi/mi-read-memory.exp: breakpoint at main
 PASS: gdb.mi/mi-read-memory.exp: mi runto main
-FAIL: gdb.mi/mi-read-memory.exp: next at main (unknown output after running)
+PASS: gdb.mi/mi-read-memory.exp: next at main
 PASS: gdb.mi/mi-read-memory.exp: no arguments
-FAIL: gdb.mi/mi-read-memory.exp: 3x2, one byte
-FAIL: gdb.mi/mi-read-memory.exp: 3x2, one byte offset by -6
-FAIL: gdb.mi/mi-read-memory.exp: expression in quotes
-FAIL: gdb.mi/mi-read-memory.exp: ascii and data
-FAIL: gdb.mi/mi-read-memory.exp: decimal
-FAIL: gdb.mi/mi-read-memory.exp: octal
+PASS: gdb.mi/mi-read-memory.exp: 3x2, one byte
+PASS: gdb.mi/mi-read-memory.exp: 3x2, one byte offset by -6
+PASS: gdb.mi/mi-read-memory.exp: expression in quotes
+PASS: gdb.mi/mi-read-memory.exp: ascii and data
+PASS: gdb.mi/mi-read-memory.exp: decimal
+PASS: gdb.mi/mi-read-memory.exp: octal
 Running src/gdb/testsuite/gdb.mi/mi-regs.exp ...
 Running src/gdb/testsuite/gdb.mi/mi-return.exp ...
 PASS: gdb.mi/mi-return.exp: breakpoint at callee4
@@ -8929,15 +8929,15 @@ PASS: gdb.mi/mi-return.exp: mi runto cal
 PASS: gdb.mi/mi-return.exp: delete all breakpoints
 PASS: gdb.mi/mi-return.exp: return from callee4 now
 Running src/gdb/testsuite/gdb.mi/mi-simplerun.exp ...
-FAIL: gdb.mi/mi-simplerun.exp: break-insert operation
+PASS: gdb.mi/mi-simplerun.exp: break-insert operation
 PASS: gdb.mi/mi-simplerun.exp: insert breakpoint at basics.c:callee2
 PASS: gdb.mi/mi-simplerun.exp: insert breakpoint at basics.c:$line_callee3_head
 PASS: gdb.mi/mi-simplerun.exp: insert breakpoint at "<fullfilename>":$line_callee4_head
-FAIL: gdb.mi/mi-simplerun.exp: list of breakpoints
+PASS: gdb.mi/mi-simplerun.exp: list of breakpoints
 PASS: gdb.mi/mi-simplerun.exp: disabling of breakpoints
 PASS: gdb.mi/mi-simplerun.exp: list of breakpoints, 16 disabled
-FAIL: gdb.mi/mi-simplerun.exp: run to main (2)
-FAIL: gdb.mi/mi-simplerun.exp: next at main (unknown output after running)
+PASS: gdb.mi/mi-simplerun.exp: run to main
+PASS: gdb.mi/mi-simplerun.exp: next at main
 PASS: gdb.mi/mi-simplerun.exp: step at main
 PASS: gdb.mi/mi-simplerun.exp: step to callee4
 PASS: gdb.mi/mi-simplerun.exp: exec-finish
@@ -8974,9 +8974,9 @@ PASS: gdb.mi/mi-stack.exp: stack info-de
 Running src/gdb/testsuite/gdb.mi/mi-stepi.exp ...
 PASS: gdb.mi/mi-stepi.exp: breakpoint at main
 PASS: gdb.mi/mi-stepi.exp: mi runto main
-FAIL: gdb.mi/mi-stepi.exp: step-instruction at main (timeout)
-FAIL: gdb.mi/mi-stepi.exp: next-instruction at main (timeout)
-FAIL: gdb.mi/mi-stepi.exp: next-instruction at main (timeout)
+PASS: gdb.mi/mi-stepi.exp: step-instruction at main
+PASS: gdb.mi/mi-stepi.exp: next-instruction at main
+PASS: gdb.mi/mi-stepi.exp: next-instruction at main
 Running src/gdb/testsuite/gdb.mi/mi-syn-frame.exp ...
 Running src/gdb/testsuite/gdb.mi/mi-until.exp ...
 PASS: gdb.mi/mi-until.exp: break-insert operation
@@ -9569,11 +9569,11 @@ PASS: gdb.mi/mi2-basics.exp: environment
 PASS: gdb.mi/mi2-basics.exp: environment-path -r dir operation
 PASS: gdb.mi/mi2-basics.exp: environment-path -r operation
 Running src/gdb/testsuite/gdb.mi/mi2-break.exp ...
-FAIL: gdb.mi/mi2-break.exp: break-insert -t operation
+PASS: gdb.mi/mi2-break.exp: break-insert -t operation
 PASS: gdb.mi/mi2-break.exp: insert temp breakpoint at basics.c:callee2
 PASS: gdb.mi/mi2-break.exp: insert temp breakpoint at basics.c:$line_callee3_body
 PASS: gdb.mi/mi2-break.exp: insert temp breakpoint at "<fullfilename>":$line_callee4_head
-FAIL: gdb.mi/mi2-break.exp: list of breakpoints
+PASS: gdb.mi/mi2-break.exp: list of breakpoints
 PASS: gdb.mi/mi2-break.exp: delete temp breakpoints
 XFAIL: gdb.mi/mi2-break.exp: break-insert -r operation
 XFAIL: gdb.mi/mi2-break.exp: insert breakpoint with regexp callee2
@@ -9594,7 +9594,7 @@ PASS: gdb.mi/mi2-cli.exp: -interpreter-e
 PASS: gdb.mi/mi2-cli.exp: -interpreter-exec console "break callee4"
 PASS: gdb.mi/mi2-cli.exp: -interpreter-exec console "info break"
 PASS: gdb.mi/mi2-cli.exp: -interpreter-exec console "set listsize 1"
-FAIL: gdb.mi/mi2-cli.exp: -interpreter-exec console "list"
+PASS: gdb.mi/mi2-cli.exp: -interpreter-exec console "list"
 PASS: gdb.mi/mi2-cli.exp: continue to callee4
 PASS: gdb.mi/mi2-cli.exp: -interpreter-exec console "delete 2"
 PASS: gdb.mi/mi2-cli.exp: -interpreter-exec console "up"
@@ -9618,7 +9618,7 @@ PASS: gdb.mi/mi2-disassemble.exp: mi run
 PASS: gdb.mi/mi2-disassemble.exp: data-disassemble from pc to pc+12 assembly only
 PASS: gdb.mi/mi2-disassemble.exp: data-disassemble file & line, assembly only
 PASS: gdb.mi/mi2-disassemble.exp: data-disassemble file, line assembly mixed
-FAIL: gdb.mi/mi2-disassemble.exp: data-disassemble range assembly mixed
+PASS: gdb.mi/mi2-disassemble.exp: data-disassemble range assembly mixed
 PASS: gdb.mi/mi2-disassemble.exp: data-disassemble bogus filename
 PASS: gdb.mi/mi2-disassemble.exp: data-disassemble bogus address
 PASS: gdb.mi/mi2-disassemble.exp: data-disassemble mix different args
@@ -9638,7 +9638,7 @@ PASS: gdb.mi/mi2-eval.exp: eval &A
 PASS: gdb.mi/mi2-eval.exp: eval A+3
 PASS: gdb.mi/mi2-eval.exp: eval A + 3
 Running src/gdb/testsuite/gdb.mi/mi2-file.exp ...
-FAIL: gdb.mi/mi2-file.exp: request path info of current source file (basics.c)
+PASS: gdb.mi/mi2-file.exp: request path info of current source file (basics.c)
 Running src/gdb/testsuite/gdb.mi/mi2-hack-cli.exp ...
 PASS: gdb.mi/mi2-hack-cli.exp: show architecture
 PASS: gdb.mi/mi2-hack-cli.exp: 47show architecture
@@ -9660,14 +9660,14 @@ PASS: gdb.mi/mi2-pthreads.exp: check_mi_
 Running src/gdb/testsuite/gdb.mi/mi2-read-memory.exp ...
 PASS: gdb.mi/mi2-read-memory.exp: breakpoint at main
 PASS: gdb.mi/mi2-read-memory.exp: mi runto main
-FAIL: gdb.mi/mi2-read-memory.exp: next at main (unknown output after running)
+PASS: gdb.mi/mi2-read-memory.exp: next at main
 PASS: gdb.mi/mi2-read-memory.exp: no arguments
-FAIL: gdb.mi/mi2-read-memory.exp: 3x2, one byte
-FAIL: gdb.mi/mi2-read-memory.exp: 3x2, one byte offset by -6
-FAIL: gdb.mi/mi2-read-memory.exp: expression in quotes
-FAIL: gdb.mi/mi2-read-memory.exp: ascii and data
-FAIL: gdb.mi/mi2-read-memory.exp: decimal
-FAIL: gdb.mi/mi2-read-memory.exp: octal
+PASS: gdb.mi/mi2-read-memory.exp: 3x2, one byte
+PASS: gdb.mi/mi2-read-memory.exp: 3x2, one byte offset by -6
+PASS: gdb.mi/mi2-read-memory.exp: expression in quotes
+PASS: gdb.mi/mi2-read-memory.exp: ascii and data
+PASS: gdb.mi/mi2-read-memory.exp: decimal
+PASS: gdb.mi/mi2-read-memory.exp: octal
 Running src/gdb/testsuite/gdb.mi/mi2-regs.exp ...
 Running src/gdb/testsuite/gdb.mi/mi2-return.exp ...
 PASS: gdb.mi/mi2-return.exp: breakpoint at callee4
@@ -9675,15 +9675,15 @@ PASS: gdb.mi/mi2-return.exp: mi runto ca
 PASS: gdb.mi/mi2-return.exp: delete all breakpoints
 PASS: gdb.mi/mi2-return.exp: return from callee4 now
 Running src/gdb/testsuite/gdb.mi/mi2-simplerun.exp ...
-FAIL: gdb.mi/mi2-simplerun.exp: break-insert operation
+PASS: gdb.mi/mi2-simplerun.exp: break-insert operation
 PASS: gdb.mi/mi2-simplerun.exp: insert breakpoint at basics.c:callee2
 PASS: gdb.mi/mi2-simplerun.exp: insert breakpoint at basics.c:$line_callee3_head
 PASS: gdb.mi/mi2-simplerun.exp: insert breakpoint at "<fullfilename>":$line_callee4_head
-FAIL: gdb.mi/mi2-simplerun.exp: list of breakpoints
+PASS: gdb.mi/mi2-simplerun.exp: list of breakpoints
 PASS: gdb.mi/mi2-simplerun.exp: disabling of breakpoints
 PASS: gdb.mi/mi2-simplerun.exp: list of breakpoints, 16 disabled
-FAIL: gdb.mi/mi2-simplerun.exp: run to main (2)
-FAIL: gdb.mi/mi2-simplerun.exp: next at main (unknown output after running)
+PASS: gdb.mi/mi2-simplerun.exp: run to main
+PASS: gdb.mi/mi2-simplerun.exp: next at main
 PASS: gdb.mi/mi2-simplerun.exp: step at main
 PASS: gdb.mi/mi2-simplerun.exp: step to callee4
 PASS: gdb.mi/mi2-simplerun.exp: exec-finish
@@ -9720,9 +9720,9 @@ PASS: gdb.mi/mi2-stack.exp: stack info-d
 Running src/gdb/testsuite/gdb.mi/mi2-stepi.exp ...
 PASS: gdb.mi/mi2-stepi.exp: breakpoint at main
 PASS: gdb.mi/mi2-stepi.exp: mi runto main
-FAIL: gdb.mi/mi2-stepi.exp: step-instruction at main (timeout)
-FAIL: gdb.mi/mi2-stepi.exp: next-instruction at main (timeout)
-FAIL: gdb.mi/mi2-stepi.exp: next-instruction at main (timeout)
+PASS: gdb.mi/mi2-stepi.exp: step-instruction at main
+PASS: gdb.mi/mi2-stepi.exp: next-instruction at main
+PASS: gdb.mi/mi2-stepi.exp: next-instruction at main
 Running src/gdb/testsuite/gdb.mi/mi2-syn-frame.exp ...
 Running src/gdb/testsuite/gdb.mi/mi2-until.exp ...
 PASS: gdb.mi/mi2-until.exp: break-insert operation
@@ -10717,8 +10717,8 @@ PASS: gdb.xml/tdesc-xinclude.exp: set td
 
 		=== gdb Summary ===
 
-# of expected passes		9704
-# of unexpected failures	326
+# of expected passes		9867
+# of unexpected failures	163
 # of expected failures		59
 # of known failures		21
 # of unresolved testcases	37

^ permalink raw reply	[flat|nested] 5+ messages in thread

* RE: skip __main
  2008-01-29 15:48   ` Pedro Alves
@ 2008-01-29 16:20     ` Pierre Muller
  2008-01-29 20:26       ` Pedro Alves
  0 siblings, 1 reply; 5+ messages in thread
From: Pierre Muller @ 2008-01-29 16:20 UTC (permalink / raw)
  To: 'Pedro Alves'; +Cc: 'GDB Patches'

OK, you are right. It better to leave "main".

		=== gdb Summary ===
 
-# of expected passes		9704
-# of unexpected failures	326
+# of expected passes		9867
+# of unexpected failures	163
 # of expected failures		59
 # of known failures		21
 # of unresolved testcases	37

I was wondering: you get much less errors
than I do, do you have any special restrictions 
applied on your testsuite?

  The number of expected passes is also lower than
mine, maybe you didn't use 'cvs up -d' for  
a while in the testsuite directory?
This is my last result on CVS gdb
that I got using 
make check RUNTESTFLAGS='--ignore manythreads.exp'

		=== gdb Summary ===

# of expected passes		10619
# of unexpected failures	529
# of unexpected successes	1
# of expected failures		58
# of known failures		31
# of unresolved testcases	38
# of untested testcases		14
# of unsupported tests		34
With your patch and the same RUNTESTFLAGS,
I go down to:
# of expected passes            10787
# of unexpected failures        351
# of unexpected successes       1
# of expected failures          58
# of known failures             32
# of unresolved testcases       38
# of untested testcases         14
# of unsupported tests          34
So I also get 178 errors less!
  
This is really good!

Pierre



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: skip __main
  2008-01-29 16:20     ` Pierre Muller
@ 2008-01-29 20:26       ` Pedro Alves
  0 siblings, 0 replies; 5+ messages in thread
From: Pedro Alves @ 2008-01-29 20:26 UTC (permalink / raw)
  To: Pierre Muller; +Cc: 'GDB Patches'

Pierre Muller wrote:
> I was wondering: you get much less errors
> than I do, do you have any special restrictions 
> applied on your testsuite?
> 

Oh, right.  I was using this old
board file in this machine:

# The canonical unix board description.
load_generic_config "unix";

process_multilib_options "";
set_board_info compiler  "[find_gcc]";
set_board_info bmk,use_alarm 1;
set_board_info gdb,noinferiorio 1;
set_board_info gdb,nosignals 1;
set_board_info ldflags "-Wl,--enable-auto-import"
send_user "configuring for cygwin testing\n";

It just skipped a bunch of problems I knew we had.
I'll stop using this on the machine I use to to testing
before submitting.  Thanks!

My testsuite rerun showed exacly the same results as before.
I notice that latelly I don't need to manually
rerun tests anymore, which is great.

Now we just need a maintainer to comment on the patch.

-- 
Pedro Alves


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-01-29 20:25 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-29  5:35 skip __main Pedro Alves
2008-01-29  8:50 ` Pierre Muller
2008-01-29 15:48   ` Pedro Alves
2008-01-29 16:20     ` Pierre Muller
2008-01-29 20:26       ` Pedro Alves

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox