public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* Update dg-extract-results.* from gcc
@ 2018-07-20 11:02 Rainer Orth
  2018-07-25 19:08 ` Tom Tromey
                   ` (3 more replies)
  0 siblings, 4 replies; 19+ messages in thread
From: Rainer Orth @ 2018-07-20 11:02 UTC (permalink / raw)
  To: gdb-patches

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

When looking at the gdb.sum file produced by dg-extract-results.sh on
Solaris 11/x86, I noticed some wrong sorting, like this:

PASS: gdb.ada/addr_arith.exp: print something'address + 0
PASS: gdb.ada/addr_arith.exp: print 0 + something'address
PASS: gdb.ada/addr_arith.exp: print something'address - 0
PASS: gdb.ada/addr_arith.exp: print 0 - something'address

Looking closer, I noticed that while dg-extract-results.sh had been
copied over from contrib in the gcc repo, the corresponding
dg-extract-results.py file had not.  The latter not only fixes the
sorting problem I'd observed, but is also way faster than the shell
version (like a factor of 50 faster).

Therefore I propose to update both files from the gcc repo.  The changes
to the .sh version are trivial, just counting the number of DejaGnu
ERROR lines, too.

There are other possible improvements in this area:

* One could keep the files in toplevel contrib as in gcc, instead of
  stashing them away in gdb/testsuite.

* One could also copy over gcc's contrib/test_summary, used by the
  toplevel make mail-report.log to provide a nice summary of test
  results.  However, this is currently hampered by the fact that for
  parallel make check the gdb.sum and gdb.log files are left in
  outputs/*/*/gdb.{sum,log} after dg-extract-results.sh has run instead
  of moving them to *.sep like gcc's gcc/Makefile.in does, so
  mail-report.log lists every failure twice.

Thoughts?

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2018-06-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* dg-extract-results.sh: Update from gcc repo
	contrib/dg-extract-results.sh.
	* dg-extract-results.py: New from gcc repo.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: gdb-dg-extract-results.patch --]
[-- Type: text/x-patch, Size: 28099 bytes --]

# HG changeset patch
# Parent  a912cfbcb6270fabdf12dd47297d162123e1e738
Update dg-extract-results.* from gcc

diff --git a/gdb/testsuite/dg-extract-results.py b/gdb/testsuite/dg-extract-results.py
new file mode 100644
--- /dev/null
+++ b/gdb/testsuite/dg-extract-results.py
@@ -0,0 +1,592 @@
+#!/usr/bin/python
+#
+# Copyright (C) 2014 Free Software Foundation, Inc.
+#
+# This script is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+
+import sys
+import getopt
+import re
+import io
+from datetime import datetime
+from operator import attrgetter
+
+# True if unrecognised lines should cause a fatal error.  Might want to turn
+# this on by default later.
+strict = False
+
+# True if the order of .log segments should match the .sum file, false if
+# they should keep the original order.
+sort_logs = True
+
+# A version of open() that is safe against whatever binary output
+# might be added to the log.
+def safe_open (filename):
+    if sys.version_info >= (3, 0):
+        return open (filename, 'r', errors = 'surrogateescape')
+    return open (filename, 'r')
+
+# Force stdout to handle escape sequences from a safe_open file.
+if sys.version_info >= (3, 0):
+    sys.stdout = io.TextIOWrapper (sys.stdout.buffer,
+                                   errors = 'surrogateescape')
+
+class Named:
+    def __init__ (self, name):
+        self.name = name
+
+class ToolRun (Named):
+    def __init__ (self, name):
+        Named.__init__ (self, name)
+        # The variations run for this tool, mapped by --target_board name.
+        self.variations = dict()
+
+    # Return the VariationRun for variation NAME.
+    def get_variation (self, name):
+        if name not in self.variations:
+            self.variations[name] = VariationRun (name)
+        return self.variations[name]
+
+class VariationRun (Named):
+    def __init__ (self, name):
+        Named.__init__ (self, name)
+        # A segment of text before the harness runs start, describing which
+        # baseboard files were loaded for the target.
+        self.header = None
+        # The harnesses run for this variation, mapped by filename.
+        self.harnesses = dict()
+        # A list giving the number of times each type of result has
+        # been seen.
+        self.counts = []
+
+    # Return the HarnessRun for harness NAME.
+    def get_harness (self, name):
+        if name not in self.harnesses:
+            self.harnesses[name] = HarnessRun (name)
+        return self.harnesses[name]
+
+class HarnessRun (Named):
+    def __init__ (self, name):
+        Named.__init__ (self, name)
+        # Segments of text that make up the harness run, mapped by a test-based
+        # key that can be used to order them.
+        self.segments = dict()
+        # Segments of text that make up the harness run but which have
+        # no recognized test results.  These are typically harnesses that
+        # are completely skipped for the target.
+        self.empty = []
+        # A list of results.  Each entry is a pair in which the first element
+        # is a unique sorting key and in which the second is the full
+        # PASS/FAIL line.
+        self.results = []
+
+    # Add a segment of text to the harness run.  If the segment includes
+    # test results, KEY is an example of one of them, and can be used to
+    # combine the individual segments in order.  If the segment has no
+    # test results (e.g. because the harness doesn't do anything for the
+    # current configuration) then KEY is None instead.  In that case
+    # just collect the segments in the order that we see them.
+    def add_segment (self, key, segment):
+        if key:
+            assert key not in self.segments
+            self.segments[key] = segment
+        else:
+            self.empty.append (segment)
+
+class Segment:
+    def __init__ (self, filename, start):
+        self.filename = filename
+        self.start = start
+        self.lines = 0
+
+class Prog:
+    def __init__ (self):
+        # The variations specified on the command line.
+        self.variations = []
+        # The variations seen in the input files.
+        self.known_variations = set()
+        # The tools specified on the command line.
+        self.tools = []
+        # Whether to create .sum rather than .log output.
+        self.do_sum = True
+        # Regexps used while parsing.
+        self.test_run_re = re.compile (r'^Test Run By (\S+) on (.*)$')
+        self.tool_re = re.compile (r'^\t\t=== (.*) tests ===$')
+        self.result_re = re.compile (r'^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED'
+                                     r'|WARNING|ERROR|UNSUPPORTED|UNTESTED'
+                                     r'|KFAIL):\s*(.+)')
+        self.completed_re = re.compile (r'.* completed at (.*)')
+        # Pieces of text to write at the head of the output.
+        # start_line is a pair in which the first element is a datetime
+        # and in which the second is the associated 'Test Run By' line.
+        self.start_line = None
+        self.native_line = ''
+        self.target_line = ''
+        self.host_line = ''
+        self.acats_premable = ''
+        # Pieces of text to write at the end of the output.
+        # end_line is like start_line but for the 'runtest completed' line.
+        self.acats_failures = []
+        self.version_output = ''
+        self.end_line = None
+        # Known summary types.
+        self.count_names = [
+            '# of DejaGnu errors\t\t',
+            '# of expected passes\t\t',
+            '# of unexpected failures\t',
+            '# of unexpected successes\t',
+            '# of expected failures\t\t',
+            '# of unknown successes\t\t',
+            '# of known failures\t\t',
+            '# of untested testcases\t\t',
+            '# of unresolved testcases\t',
+            '# of unsupported tests\t\t'
+        ]
+        self.runs = dict()
+
+    def usage (self):
+        name = sys.argv[0]
+        sys.stderr.write ('Usage: ' + name
+                          + ''' [-t tool] [-l variant-list] [-L] log-or-sum-file ...
+
+    tool           The tool (e.g. g++, libffi) for which to create a
+                   new test summary file.  If not specified then output
+                   is created for all tools.
+    variant-list   One or more test variant names.  If the list is
+                   not specified then one is constructed from all
+                   variants in the files for <tool>.
+    sum-file       A test summary file with the format of those
+                   created by runtest from DejaGnu.
+    If -L is used, merge *.log files instead of *.sum.  In this
+    mode the exact order of lines may not be preserved, just different
+    Running *.exp chunks should be in correct order.
+''')
+        sys.exit (1)
+
+    def fatal (self, what, string):
+        if not what:
+            what = sys.argv[0]
+        sys.stderr.write (what + ': ' + string + '\n')
+        sys.exit (1)
+
+    # Parse the command-line arguments.
+    def parse_cmdline (self):
+        try:
+            (options, self.files) = getopt.getopt (sys.argv[1:], 'l:t:L')
+            if len (self.files) == 0:
+                self.usage()
+            for (option, value) in options:
+                if option == '-l':
+                    self.variations.append (value)
+                elif option == '-t':
+                    self.tools.append (value)
+                else:
+                    self.do_sum = False
+        except getopt.GetoptError as e:
+            self.fatal (None, e.msg)
+
+    # Try to parse time string TIME, returning an arbitrary time on failure.
+    # Getting this right is just a nice-to-have so failures should be silent.
+    def parse_time (self, time):
+        try:
+            return datetime.strptime (time, '%c')
+        except ValueError:
+            return datetime.now()
+
+    # Parse an integer and abort on failure.
+    def parse_int (self, filename, value):
+        try:
+            return int (value)
+        except ValueError:
+            self.fatal (filename, 'expected an integer, got: ' + value)
+
+    # Return a list that represents no test results.
+    def zero_counts (self):
+        return [0 for x in self.count_names]
+
+    # Return the ToolRun for tool NAME.
+    def get_tool (self, name):
+        if name not in self.runs:
+            self.runs[name] = ToolRun (name)
+        return self.runs[name]
+
+    # Add the result counts in list FROMC to TOC.
+    def accumulate_counts (self, toc, fromc):
+        for i in range (len (self.count_names)):
+            toc[i] += fromc[i]
+
+    # Parse the list of variations after 'Schedule of variations:'.
+    # Return the number seen.
+    def parse_variations (self, filename, file):
+        num_variations = 0
+        while True:
+            line = file.readline()
+            if line == '':
+                self.fatal (filename, 'could not parse variation list')
+            if line == '\n':
+                break
+            self.known_variations.add (line.strip())
+            num_variations += 1
+        return num_variations
+
+    # Parse from the first line after 'Running target ...' to the end
+    # of the run's summary.
+    def parse_run (self, filename, file, tool, variation, num_variations):
+        header = None
+        harness = None
+        segment = None
+        final_using = 0
+
+        # If this is the first run for this variation, add any text before
+        # the first harness to the header.
+        if not variation.header:
+            segment = Segment (filename, file.tell())
+            variation.header = segment
+
+        # Parse the rest of the summary (the '# of ' lines).
+        if len (variation.counts) == 0:
+            variation.counts = self.zero_counts()
+
+        # Parse up until the first line of the summary.
+        if num_variations == 1:
+            end = '\t\t=== ' + tool.name + ' Summary ===\n'
+        else:
+            end = ('\t\t=== ' + tool.name + ' Summary for '
+                   + variation.name + ' ===\n')
+        while True:
+            line = file.readline()
+            if line == '':
+                self.fatal (filename, 'no recognised summary line')
+            if line == end:
+                break
+
+            # Look for the start of a new harness.
+            if line.startswith ('Running ') and line.endswith (' ...\n'):
+                # Close off the current harness segment, if any.
+                if harness:
+                    segment.lines -= final_using
+                    harness.add_segment (first_key, segment)
+                name = line[len ('Running '):-len(' ...\n')]
+                harness = variation.get_harness (name)
+                segment = Segment (filename, file.tell())
+                first_key = None
+                final_using = 0
+                continue
+
+            # Record test results.  Associate the first test result with
+            # the harness segment, so that if a run for a particular harness
+            # has been split up, we can reassemble the individual segments
+            # in a sensible order.
+            #
+            # dejagnu sometimes issues warnings about the testing environment
+            # before running any tests.  Treat them as part of the header
+            # rather than as a test result.
+            match = self.result_re.match (line)
+            if match and (harness or not line.startswith ('WARNING:')):
+                if not harness:
+                    self.fatal (filename, 'saw test result before harness name')
+                name = match.group (2)
+                # Ugly hack to get the right order for gfortran.
+                if name.startswith ('gfortran.dg/g77/'):
+                    name = 'h' + name
+                key = (name, len (harness.results))
+                harness.results.append ((key, line))
+                if not first_key and sort_logs:
+                    first_key = key
+                if line.startswith ('ERROR: (DejaGnu)'):
+                    for i in range (len (self.count_names)):
+                        if 'DejaGnu errors' in self.count_names[i]:
+                            variation.counts[i] += 1
+                            break
+
+            # 'Using ...' lines are only interesting in a header.  Splitting
+            # the test up into parallel runs leads to more 'Using ...' lines
+            # than there would be in a single log.
+            if line.startswith ('Using '):
+                final_using += 1
+            else:
+                final_using = 0
+
+            # Add other text to the current segment, if any.
+            if segment:
+                segment.lines += 1
+
+        # Close off the final harness segment, if any.
+        if harness:
+            segment.lines -= final_using
+            harness.add_segment (first_key, segment)
+
+        while True:
+            before = file.tell()
+            line = file.readline()
+            if line == '':
+                break
+            if line == '\n':
+                continue
+            if not line.startswith ('# '):
+                file.seek (before)
+                break
+            found = False
+            for i in range (len (self.count_names)):
+                if line.startswith (self.count_names[i]):
+                    count = line[len (self.count_names[i]):-1].strip()
+                    variation.counts[i] += self.parse_int (filename, count)
+                    found = True
+                    break
+            if not found:
+                self.fatal (filename, 'unknown test result: ' + line[:-1])
+
+    # Parse an acats run, which uses a different format from dejagnu.
+    # We have just skipped over '=== acats configuration ==='.
+    def parse_acats_run (self, filename, file):
+        # Parse the preamble, which describes the configuration and logs
+        # the creation of support files.
+        record = (self.acats_premable == '')
+        if record:
+            self.acats_premable = '\t\t=== acats configuration ===\n'
+        while True:
+            line = file.readline()
+            if line == '':
+                self.fatal (filename, 'could not parse acats preamble')
+            if line == '\t\t=== acats tests ===\n':
+                break
+            if record:
+                self.acats_premable += line
+
+        # Parse the test results themselves, using a dummy variation name.
+        tool = self.get_tool ('acats')
+        variation = tool.get_variation ('none')
+        self.parse_run (filename, file, tool, variation, 1)
+
+        # Parse the failure list.
+        while True:
+            before = file.tell()
+            line = file.readline()
+            if line.startswith ('*** FAILURES: '):
+                self.acats_failures.append (line[len ('*** FAILURES: '):-1])
+                continue
+            file.seek (before)
+            break
+
+    # Parse the final summary at the end of a log in order to capture
+    # the version output that follows it.
+    def parse_final_summary (self, filename, file):
+        record = (self.version_output == '')
+        while True:
+            line = file.readline()
+            if line == '':
+                break
+            if line.startswith ('# of '):
+                continue
+            if record:
+                self.version_output += line
+            if line == '\n':
+                break
+
+    # Parse a .log or .sum file.
+    def parse_file (self, filename, file):
+        tool = None
+        target = None
+        num_variations = 1
+        while True:
+            line = file.readline()
+            if line == '':
+                return
+
+            # Parse the list of variations, which comes before the test
+            # runs themselves.
+            if line.startswith ('Schedule of variations:'):
+                num_variations = self.parse_variations (filename, file)
+                continue
+
+            # Parse a testsuite run for one tool/variation combination.
+            if line.startswith ('Running target '):
+                name = line[len ('Running target '):-1]
+                if not tool:
+                    self.fatal (filename, 'could not parse tool name')
+                if name not in self.known_variations:
+                    self.fatal (filename, 'unknown target: ' + name)
+                self.parse_run (filename, file, tool,
+                                tool.get_variation (name),
+                                num_variations)
+                # If there is only one variation then there is no separate
+                # summary for it.  Record any following version output.
+                if num_variations == 1:
+                    self.parse_final_summary (filename, file)
+                continue
+
+            # Parse the start line.  In the case where several files are being
+            # parsed, pick the one with the earliest time.
+            match = self.test_run_re.match (line)
+            if match:
+                time = self.parse_time (match.group (2))
+                if not self.start_line or self.start_line[0] > time:
+                    self.start_line = (time, line)
+                continue
+
+            # Parse the form used for native testing.
+            if line.startswith ('Native configuration is '):
+                self.native_line = line
+                continue
+
+            # Parse the target triplet.
+            if line.startswith ('Target is '):
+                self.target_line = line
+                continue
+
+            # Parse the host triplet.
+            if line.startswith ('Host   is '):
+                self.host_line = line
+                continue
+
+            # Parse the acats premable.
+            if line == '\t\t=== acats configuration ===\n':
+                self.parse_acats_run (filename, file)
+                continue
+
+            # Parse the tool name.
+            match = self.tool_re.match (line)
+            if match:
+                tool = self.get_tool (match.group (1))
+                continue
+
+            # Skip over the final summary (which we instead create from
+            # individual runs) and parse the version output.
+            if tool and line == '\t\t=== ' + tool.name + ' Summary ===\n':
+                if file.readline() != '\n':
+                    self.fatal (filename, 'expected blank line after summary')
+                self.parse_final_summary (filename, file)
+                continue
+
+            # Parse the completion line.  In the case where several files
+            # are being parsed, pick the one with the latest time.
+            match = self.completed_re.match (line)
+            if match:
+                time = self.parse_time (match.group (1))
+                if not self.end_line or self.end_line[0] < time:
+                    self.end_line = (time, line)
+                continue
+
+            # Sanity check to make sure that important text doesn't get
+            # dropped accidentally.
+            if strict and line.strip() != '':
+                self.fatal (filename, 'unrecognised line: ' + line[:-1])
+
+    # Output a segment of text.
+    def output_segment (self, segment):
+        with safe_open (segment.filename) as file:
+            file.seek (segment.start)
+            for i in range (segment.lines):
+                sys.stdout.write (file.readline())
+
+    # Output a summary giving the number of times each type of result has
+    # been seen.
+    def output_summary (self, tool, counts):
+        for i in range (len (self.count_names)):
+            name = self.count_names[i]
+            # dejagnu only prints result types that were seen at least once,
+            # but acats always prints a number of unexpected failures.
+            if (counts[i] > 0
+                or (tool.name == 'acats'
+                    and name.startswith ('# of unexpected failures'))):
+                sys.stdout.write ('%s%d\n' % (name, counts[i]))
+
+    # Output unified .log or .sum information for a particular variation,
+    # with a summary at the end.
+    def output_variation (self, tool, variation):
+        self.output_segment (variation.header)
+        for harness in sorted (variation.harnesses.values(),
+                               key = attrgetter ('name')):
+            sys.stdout.write ('Running ' + harness.name + ' ...\n')
+            if self.do_sum:
+                harness.results.sort()
+                for (key, line) in harness.results:
+                    sys.stdout.write (line)
+            else:
+                # Rearrange the log segments into test order (but without
+                # rearranging text within those segments).
+                for key in sorted (harness.segments.keys()):
+                    self.output_segment (harness.segments[key])
+                for segment in harness.empty:
+                    self.output_segment (segment)
+        if len (self.variations) > 1:
+            sys.stdout.write ('\t\t=== ' + tool.name + ' Summary for '
+                              + variation.name + ' ===\n\n')
+            self.output_summary (tool, variation.counts)
+
+    # Output unified .log or .sum information for a particular tool,
+    # with a summary at the end.
+    def output_tool (self, tool):
+        counts = self.zero_counts()
+        if tool.name == 'acats':
+            # acats doesn't use variations, so just output everything.
+            # It also has a different approach to whitespace.
+            sys.stdout.write ('\t\t=== ' + tool.name + ' tests ===\n')
+            for variation in tool.variations.values():
+                self.output_variation (tool, variation)
+                self.accumulate_counts (counts, variation.counts)
+            sys.stdout.write ('\t\t=== ' + tool.name + ' Summary ===\n')
+        else:
+            # Output the results in the usual dejagnu runtest format.
+            sys.stdout.write ('\n\t\t=== ' + tool.name + ' tests ===\n\n'
+                              'Schedule of variations:\n')
+            for name in self.variations:
+                if name in tool.variations:
+                    sys.stdout.write ('    ' + name + '\n')
+            sys.stdout.write ('\n')
+            for name in self.variations:
+                if name in tool.variations:
+                    variation = tool.variations[name]
+                    sys.stdout.write ('Running target '
+                                      + variation.name + '\n')
+                    self.output_variation (tool, variation)
+                    self.accumulate_counts (counts, variation.counts)
+            sys.stdout.write ('\n\t\t=== ' + tool.name + ' Summary ===\n\n')
+        self.output_summary (tool, counts)
+
+    def main (self):
+        self.parse_cmdline()
+        try:
+            # Parse the input files.
+            for filename in self.files:
+                with safe_open (filename) as file:
+                    self.parse_file (filename, file)
+
+            # Decide what to output.
+            if len (self.variations) == 0:
+                self.variations = sorted (self.known_variations)
+            else:
+                for name in self.variations:
+                    if name not in self.known_variations:
+                        self.fatal (None, 'no results for ' + name)
+            if len (self.tools) == 0:
+                self.tools = sorted (self.runs.keys())
+
+            # Output the header.
+            if self.start_line:
+                sys.stdout.write (self.start_line[1])
+            sys.stdout.write (self.native_line)
+            sys.stdout.write (self.target_line)
+            sys.stdout.write (self.host_line)
+            sys.stdout.write (self.acats_premable)
+
+            # Output the main body.
+            for name in self.tools:
+                if name not in self.runs:
+                    self.fatal (None, 'no results for ' + name)
+                self.output_tool (self.runs[name])
+
+            # Output the footer.
+            if len (self.acats_failures) > 0:
+                sys.stdout.write ('*** FAILURES: '
+                                  + ' '.join (self.acats_failures) + '\n')
+            sys.stdout.write (self.version_output)
+            if self.end_line:
+                sys.stdout.write (self.end_line[1])
+        except IOError as e:
+            self.fatal (e.filename, e.strerror)
+
+Prog().main()
diff --git a/gdb/testsuite/dg-extract-results.sh b/gdb/testsuite/dg-extract-results.sh
--- a/gdb/testsuite/dg-extract-results.sh
+++ b/gdb/testsuite/dg-extract-results.sh
@@ -6,7 +6,7 @@
 # The resulting file can be used with test result comparison scripts for
 # results from tests that were run in parallel.  See usage() below.
 
-# Copyright (C) 2008-2018 Free Software Foundation, Inc.
+# Copyright (C) 2008, 2009, 2010, 2012 Free Software Foundation
 # Contributed by Janis Johnson <janis187@us.ibm.com>
 #
 # This file is part of GCC.
@@ -22,7 +22,9 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# along with GCC; see the file COPYING.  If not, write to
+# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
 
 PROGNAME=dg-extract-results.sh
 
@@ -30,7 +32,7 @@ PROGNAME=dg-extract-results.sh
 PYTHON_VER=`echo "$0" | sed 's/sh$/py/'`
 if test "$PYTHON_VER" != "$0" &&
    test -f "$PYTHON_VER" &&
-   python -c 'import sys; sys.exit (0 if sys.version_info >= (2, 6) else 1)' \
+   python -c 'import sys, getopt, re, io, datetime, operator; sys.exit (0 if sys.version_info >= (2, 6) else 1)' \
      > /dev/null 2> /dev/null; then
   exec python $PYTHON_VER "$@"
 fi
@@ -367,10 +369,11 @@ EOF
 BEGIN {
   variant="$VAR"
   tool="$TOOL"
-  passcnt=0; failcnt=0; untstcnt=0; xpasscnt=0; xfailcnt=0; kpasscnt=0; kfailcnt=0; unsupcnt=0; unrescnt=0;
+  passcnt=0; failcnt=0; untstcnt=0; xpasscnt=0; xfailcnt=0; kpasscnt=0; kfailcnt=0; unsupcnt=0; unrescnt=0; dgerrorcnt=0;
   curvar=""; insummary=0
 }
 /^Running target /		{ curvar = \$3; next }
+/^ERROR: \(DejaGnu\)/		{ if (variant == curvar) dgerrorcnt += 1 }
 /^# of /			{ if (variant == curvar) insummary = 1 }
 /^# of expected passes/		{ if (insummary == 1) passcnt += \$5; next; }
 /^# of unexpected successes/	{ if (insummary == 1) xpasscnt += \$5; next; }
@@ -388,6 +391,7 @@ BEGIN {
 { next }
 END {
   printf ("\t\t=== %s Summary for %s ===\n\n", tool, variant)
+  if (dgerrorcnt != 0) printf ("# of DejaGnu errors\t\t%d\n", dgerrorcnt)
   if (passcnt != 0) printf ("# of expected passes\t\t%d\n", passcnt)
   if (failcnt != 0) printf ("# of unexpected failures\t%d\n", failcnt)
   if (xpasscnt != 0) printf ("# of unexpected successes\t%d\n", xpasscnt)
@@ -417,8 +421,9 @@ TOTAL_AWK=${TMP}/total.awk
 cat << EOF > $TOTAL_AWK
 BEGIN {
   tool="$TOOL"
-  passcnt=0; failcnt=0; untstcnt=0; xpasscnt=0; xfailcnt=0; kfailcnt=0; unsupcnt=0; unrescnt=0
+  passcnt=0; failcnt=0; untstcnt=0; xpasscnt=0; xfailcnt=0; kfailcnt=0; unsupcnt=0; unrescnt=0; dgerrorcnt=0
 }
+/^# of DejaGnu errors/		{ dgerrorcnt += \$5 }
 /^# of expected passes/		{ passcnt += \$5 }
 /^# of unexpected failures/	{ failcnt += \$5 }
 /^# of unexpected successes/	{ xpasscnt += \$5 }
@@ -430,6 +435,7 @@ BEGIN {
 /^# of unsupported tests/	{ unsupcnt += \$5 }
 END {
   printf ("\n\t\t=== %s Summary ===\n\n", tool)
+  if (dgerrorcnt != 0) printf ("# of DejaGnu errors\t\t%d\n", dgerrorcnt)
   if (passcnt != 0) printf ("# of expected passes\t\t%d\n", passcnt)
   if (failcnt != 0) printf ("# of unexpected failures\t%d\n", failcnt)
   if (xpasscnt != 0) printf ("# of unexpected successes\t%d\n", xpasscnt)

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

* Re: Update dg-extract-results.* from gcc
  2018-07-20 11:02 Update dg-extract-results.* from gcc Rainer Orth
@ 2018-07-25 19:08 ` Tom Tromey
  2018-07-26 20:54   ` Sergio Durigan Junior
  2018-07-31 12:44   ` Rainer Orth
  2018-08-07 14:35 ` Pedro Alves
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 19+ messages in thread
From: Tom Tromey @ 2018-07-25 19:08 UTC (permalink / raw)
  To: Rainer Orth; +Cc: gdb-patches

>>>>> "Rainer" == Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:

Rainer> Therefore I propose to update both files from the gcc repo.  The changes
Rainer> to the .sh version are trivial, just counting the number of DejaGnu
Rainer> ERROR lines, too.

Thank you for doing this.  This is ok.

Rainer> * One could keep the files in toplevel contrib as in gcc, instead of
Rainer>   stashing them away in gdb/testsuite.

I don't have an opinion on this one, either way is ok by me.

Rainer> * One could also copy over gcc's contrib/test_summary, used by the
Rainer>   toplevel make mail-report.log to provide a nice summary of test
Rainer>   results.  However, this is currently hampered by the fact that for
Rainer>   parallel make check the gdb.sum and gdb.log files are left in
Rainer>   outputs/*/*/gdb.{sum,log} after dg-extract-results.sh has run instead
Rainer>   of moving them to *.sep like gcc's gcc/Makefile.in does, so
Rainer>   mail-report.log lists every failure twice.

I don't understand the "*.sep" comment - would you mind spelling it out?

Anyway, if this script is useful to you, it's fine with me if you want
to find a way to make it work.  I think the outputs/** stuff can be
moved around or messed with pretty freely, though of course it is best
not to outright lose things.

Tom

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

* Re: Update dg-extract-results.* from gcc
  2018-07-25 19:08 ` Tom Tromey
@ 2018-07-26 20:54   ` Sergio Durigan Junior
  2018-07-31 12:46     ` Rainer Orth
  2018-07-31 12:44   ` Rainer Orth
  1 sibling, 1 reply; 19+ messages in thread
From: Sergio Durigan Junior @ 2018-07-26 20:54 UTC (permalink / raw)
  To: Tom Tromey; +Cc: Rainer Orth, gdb-patches

On Wednesday, July 25 2018, Tom Tromey wrote:

>>>>>> "Rainer" == Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:
> Rainer> * One could also copy over gcc's contrib/test_summary, used by the
> Rainer>   toplevel make mail-report.log to provide a nice summary of test
> Rainer>   results.  However, this is currently hampered by the fact that for
> Rainer>   parallel make check the gdb.sum and gdb.log files are left in
> Rainer>   outputs/*/*/gdb.{sum,log} after dg-extract-results.sh has run instead
> Rainer>   of moving them to *.sep like gcc's gcc/Makefile.in does, so
> Rainer>   mail-report.log lists every failure twice.
>
> I don't understand the "*.sep" comment - would you mind spelling it out?
>
> Anyway, if this script is useful to you, it's fine with me if you want
> to find a way to make it work.  I think the outputs/** stuff can be
> moved around or messed with pretty freely, though of course it is best
> not to outright lose things.

Just a note: if you're going to move/change the outputs/** stuff, please
make sure the racy targets on gdb/testsuite/Makefile still work.

Thanks,

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/

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

* Re: Update dg-extract-results.* from gcc
  2018-07-25 19:08 ` Tom Tromey
  2018-07-26 20:54   ` Sergio Durigan Junior
@ 2018-07-31 12:44   ` Rainer Orth
  2018-08-06 13:50     ` Rainer Orth
  2018-08-07 11:52     ` Rainer Orth
  1 sibling, 2 replies; 19+ messages in thread
From: Rainer Orth @ 2018-07-31 12:44 UTC (permalink / raw)
  To: Tom Tromey; +Cc: gdb-patches

Hi Tom,

>>>>>> "Rainer" == Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:
>
> Rainer> Therefore I propose to update both files from the gcc repo.  The changes
> Rainer> to the .sh version are trivial, just counting the number of DejaGnu
> Rainer> ERROR lines, too.
>
> Thank you for doing this.  This is ok.
>
> Rainer> * One could keep the files in toplevel contrib as in gcc, instead of
> Rainer>   stashing them away in gdb/testsuite.
>
> I don't have an opinion on this one, either way is ok by me.

On second thought, there are some arguments for moving them to toplevel
contrib:

* This way, they can easily be used should someone decide to parallelize
  one or more of the binutils, gas, or ld testsuites.

* They are less easily overlooked for updates from the gcc repo when
  they reside in the same place in both.

* The test_summary script needs to live in contrib since the toplevel
  Makefile's mail-report.log target expects it there.

So I'll go that route.

> Rainer> * One could also copy over gcc's contrib/test_summary, used by the
> Rainer>   toplevel make mail-report.log to provide a nice summary of test
> Rainer>   results.  However, this is currently hampered by the fact that for
> Rainer>   parallel make check the gdb.sum and gdb.log files are left in
> Rainer>   outputs/*/*/gdb.{sum,log} after dg-extract-results.sh has run instead
> Rainer>   of moving them to *.sep like gcc's gcc/Makefile.in does, so
> Rainer>   mail-report.log lists every failure twice.
>
> I don't understand the "*.sep" comment - would you mind spelling it out?

The test_summary scripts works by searching for *.sum and *.log files in
the whole tree (given that those live at different levels in the build
tree and cannot easily be found with a glob pattern).

Currently, once dg-extract-results.sh has summarized the individual
gdb.sum and gdb.log files in outputs, we have both the individual
per-subdir files in place and the summarized one in gdb/testsuite.  When
test_summary runs, it find all of of those and lists every non-PASS
result twice in its output, which isn't particularly helpful.

To avoid this, the gcc testsuite moves the subdir .sum/.log files for
parallelized testsuites to .sum.sep/.log.sep before passing them to
dg-extract-results.sh.  This way, we get one summary per testsuite
(e.g. gcc or g++, or gdb in the case at hand), and test_summary won't
pick them up twice.

> Anyway, if this script is useful to you, it's fine with me if you want
> to find a way to make it work.  I think the outputs/** stuff can be
> moved around or messed with pretty freely, though of course it is best
> not to outright lose things.

Absolutely: as I said, the individual files are just moved aside not to
interfere with the likes of test_summary, but still left in place since
dg-extract-results.* isn't always perfect in merging them.

I'll go ahead and prepare a patch then.

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

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

* Re: Update dg-extract-results.* from gcc
  2018-07-26 20:54   ` Sergio Durigan Junior
@ 2018-07-31 12:46     ` Rainer Orth
  0 siblings, 0 replies; 19+ messages in thread
From: Rainer Orth @ 2018-07-31 12:46 UTC (permalink / raw)
  To: Sergio Durigan Junior; +Cc: Tom Tromey, gdb-patches

Hi Sergio,

> On Wednesday, July 25 2018, Tom Tromey wrote:
>
>>>>>>> "Rainer" == Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:
>> Rainer> * One could also copy over gcc's contrib/test_summary, used by the
>> Rainer>   toplevel make mail-report.log to provide a nice summary of test
>> Rainer>   results.  However, this is currently hampered by the fact that for
>> Rainer>   parallel make check the gdb.sum and gdb.log files are left in
>> Rainer>   outputs/*/*/gdb.{sum,log} after dg-extract-results.sh has run
>> Rainer> instead
>> Rainer>   of moving them to *.sep like gcc's gcc/Makefile.in does, so
>> Rainer>   mail-report.log lists every failure twice.
>>
>> I don't understand the "*.sep" comment - would you mind spelling it out?
>>
>> Anyway, if this script is useful to you, it's fine with me if you want
>> to find a way to make it work.  I think the outputs/** stuff can be
>> moved around or messed with pretty freely, though of course it is best
>> not to outright lose things.
>
> Just a note: if you're going to move/change the outputs/** stuff, please
> make sure the racy targets on gdb/testsuite/Makefile still work.

good point.  I hope I'd have adapted every use of dg-extract-results.sh
in gdb/testsuite/Makefile.in, but I'll certainly double-check.

Thanks.
        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

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

* Re: Update dg-extract-results.* from gcc
  2018-07-31 12:44   ` Rainer Orth
@ 2018-08-06 13:50     ` Rainer Orth
  2018-08-07 11:52     ` Rainer Orth
  1 sibling, 0 replies; 19+ messages in thread
From: Rainer Orth @ 2018-08-06 13:50 UTC (permalink / raw)
  To: Tom Tromey; +Cc: gdb-patches

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

Hi Tom,

>>>>>>> "Rainer" == Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:
>>
>> Rainer> Therefore I propose to update both files from the gcc repo.  The
>> Rainer> changes
>> Rainer> to the .sh version are trivial, just counting the number of DejaGnu
>> Rainer> ERROR lines, too.
>>
>> Thank you for doing this.  This is ok.
>>
>> Rainer> * One could keep the files in toplevel contrib as in gcc, instead of
>> Rainer>   stashing them away in gdb/testsuite.
>>
>> I don't have an opinion on this one, either way is ok by me.
>
> On second thought, there are some arguments for moving them to toplevel
> contrib:
>
> * This way, they can easily be used should someone decide to parallelize
>   one or more of the binutils, gas, or ld testsuites.
>
> * They are less easily overlooked for updates from the gcc repo when
>   they reside in the same place in both.
>
> * The test_summary script needs to live in contrib since the toplevel
>   Makefile's mail-report.log target expects it there.
>
> So I'll go that route.

here's what I'm going to check in shortly.  Tested on amd64-pc-solaris2.11 with

	make -j16 check
and
	make -j16 -k RACY_ITER=5 check

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2018-06-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	gdb/testsuite:
	* dg-extract-results.sh: Move to toplevel contrib.
	* Makefile.in (check-parallel): Reflect dg-extract-results.sh move.
	* Makefile.in (check-parallel-racy): Likewise.

	contrib:
	* dg-extract-results.sh: Move from gdb/testsuite.
	Update from gcc repo.
	* dg-extract-results.py: New from gcc repo.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: gdb-dg-extract-results.patch --]
[-- Type: text/x-patch, Size: 29393 bytes --]

# HG changeset patch
# Parent  84125362cdb6fb98ee6e31d4d3bbc1e8214e21bc
Update dg-extract-results.* from gcc

diff --git a/contrib/dg-extract-results.py b/contrib/dg-extract-results.py
new file mode 100644
--- /dev/null
+++ b/contrib/dg-extract-results.py
@@ -0,0 +1,592 @@
+#!/usr/bin/python
+#
+# Copyright (C) 2014 Free Software Foundation, Inc.
+#
+# This script is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+
+import sys
+import getopt
+import re
+import io
+from datetime import datetime
+from operator import attrgetter
+
+# True if unrecognised lines should cause a fatal error.  Might want to turn
+# this on by default later.
+strict = False
+
+# True if the order of .log segments should match the .sum file, false if
+# they should keep the original order.
+sort_logs = True
+
+# A version of open() that is safe against whatever binary output
+# might be added to the log.
+def safe_open (filename):
+    if sys.version_info >= (3, 0):
+        return open (filename, 'r', errors = 'surrogateescape')
+    return open (filename, 'r')
+
+# Force stdout to handle escape sequences from a safe_open file.
+if sys.version_info >= (3, 0):
+    sys.stdout = io.TextIOWrapper (sys.stdout.buffer,
+                                   errors = 'surrogateescape')
+
+class Named:
+    def __init__ (self, name):
+        self.name = name
+
+class ToolRun (Named):
+    def __init__ (self, name):
+        Named.__init__ (self, name)
+        # The variations run for this tool, mapped by --target_board name.
+        self.variations = dict()
+
+    # Return the VariationRun for variation NAME.
+    def get_variation (self, name):
+        if name not in self.variations:
+            self.variations[name] = VariationRun (name)
+        return self.variations[name]
+
+class VariationRun (Named):
+    def __init__ (self, name):
+        Named.__init__ (self, name)
+        # A segment of text before the harness runs start, describing which
+        # baseboard files were loaded for the target.
+        self.header = None
+        # The harnesses run for this variation, mapped by filename.
+        self.harnesses = dict()
+        # A list giving the number of times each type of result has
+        # been seen.
+        self.counts = []
+
+    # Return the HarnessRun for harness NAME.
+    def get_harness (self, name):
+        if name not in self.harnesses:
+            self.harnesses[name] = HarnessRun (name)
+        return self.harnesses[name]
+
+class HarnessRun (Named):
+    def __init__ (self, name):
+        Named.__init__ (self, name)
+        # Segments of text that make up the harness run, mapped by a test-based
+        # key that can be used to order them.
+        self.segments = dict()
+        # Segments of text that make up the harness run but which have
+        # no recognized test results.  These are typically harnesses that
+        # are completely skipped for the target.
+        self.empty = []
+        # A list of results.  Each entry is a pair in which the first element
+        # is a unique sorting key and in which the second is the full
+        # PASS/FAIL line.
+        self.results = []
+
+    # Add a segment of text to the harness run.  If the segment includes
+    # test results, KEY is an example of one of them, and can be used to
+    # combine the individual segments in order.  If the segment has no
+    # test results (e.g. because the harness doesn't do anything for the
+    # current configuration) then KEY is None instead.  In that case
+    # just collect the segments in the order that we see them.
+    def add_segment (self, key, segment):
+        if key:
+            assert key not in self.segments
+            self.segments[key] = segment
+        else:
+            self.empty.append (segment)
+
+class Segment:
+    def __init__ (self, filename, start):
+        self.filename = filename
+        self.start = start
+        self.lines = 0
+
+class Prog:
+    def __init__ (self):
+        # The variations specified on the command line.
+        self.variations = []
+        # The variations seen in the input files.
+        self.known_variations = set()
+        # The tools specified on the command line.
+        self.tools = []
+        # Whether to create .sum rather than .log output.
+        self.do_sum = True
+        # Regexps used while parsing.
+        self.test_run_re = re.compile (r'^Test Run By (\S+) on (.*)$')
+        self.tool_re = re.compile (r'^\t\t=== (.*) tests ===$')
+        self.result_re = re.compile (r'^(PASS|XPASS|FAIL|XFAIL|UNRESOLVED'
+                                     r'|WARNING|ERROR|UNSUPPORTED|UNTESTED'
+                                     r'|KFAIL):\s*(.+)')
+        self.completed_re = re.compile (r'.* completed at (.*)')
+        # Pieces of text to write at the head of the output.
+        # start_line is a pair in which the first element is a datetime
+        # and in which the second is the associated 'Test Run By' line.
+        self.start_line = None
+        self.native_line = ''
+        self.target_line = ''
+        self.host_line = ''
+        self.acats_premable = ''
+        # Pieces of text to write at the end of the output.
+        # end_line is like start_line but for the 'runtest completed' line.
+        self.acats_failures = []
+        self.version_output = ''
+        self.end_line = None
+        # Known summary types.
+        self.count_names = [
+            '# of DejaGnu errors\t\t',
+            '# of expected passes\t\t',
+            '# of unexpected failures\t',
+            '# of unexpected successes\t',
+            '# of expected failures\t\t',
+            '# of unknown successes\t\t',
+            '# of known failures\t\t',
+            '# of untested testcases\t\t',
+            '# of unresolved testcases\t',
+            '# of unsupported tests\t\t'
+        ]
+        self.runs = dict()
+
+    def usage (self):
+        name = sys.argv[0]
+        sys.stderr.write ('Usage: ' + name
+                          + ''' [-t tool] [-l variant-list] [-L] log-or-sum-file ...
+
+    tool           The tool (e.g. g++, libffi) for which to create a
+                   new test summary file.  If not specified then output
+                   is created for all tools.
+    variant-list   One or more test variant names.  If the list is
+                   not specified then one is constructed from all
+                   variants in the files for <tool>.
+    sum-file       A test summary file with the format of those
+                   created by runtest from DejaGnu.
+    If -L is used, merge *.log files instead of *.sum.  In this
+    mode the exact order of lines may not be preserved, just different
+    Running *.exp chunks should be in correct order.
+''')
+        sys.exit (1)
+
+    def fatal (self, what, string):
+        if not what:
+            what = sys.argv[0]
+        sys.stderr.write (what + ': ' + string + '\n')
+        sys.exit (1)
+
+    # Parse the command-line arguments.
+    def parse_cmdline (self):
+        try:
+            (options, self.files) = getopt.getopt (sys.argv[1:], 'l:t:L')
+            if len (self.files) == 0:
+                self.usage()
+            for (option, value) in options:
+                if option == '-l':
+                    self.variations.append (value)
+                elif option == '-t':
+                    self.tools.append (value)
+                else:
+                    self.do_sum = False
+        except getopt.GetoptError as e:
+            self.fatal (None, e.msg)
+
+    # Try to parse time string TIME, returning an arbitrary time on failure.
+    # Getting this right is just a nice-to-have so failures should be silent.
+    def parse_time (self, time):
+        try:
+            return datetime.strptime (time, '%c')
+        except ValueError:
+            return datetime.now()
+
+    # Parse an integer and abort on failure.
+    def parse_int (self, filename, value):
+        try:
+            return int (value)
+        except ValueError:
+            self.fatal (filename, 'expected an integer, got: ' + value)
+
+    # Return a list that represents no test results.
+    def zero_counts (self):
+        return [0 for x in self.count_names]
+
+    # Return the ToolRun for tool NAME.
+    def get_tool (self, name):
+        if name not in self.runs:
+            self.runs[name] = ToolRun (name)
+        return self.runs[name]
+
+    # Add the result counts in list FROMC to TOC.
+    def accumulate_counts (self, toc, fromc):
+        for i in range (len (self.count_names)):
+            toc[i] += fromc[i]
+
+    # Parse the list of variations after 'Schedule of variations:'.
+    # Return the number seen.
+    def parse_variations (self, filename, file):
+        num_variations = 0
+        while True:
+            line = file.readline()
+            if line == '':
+                self.fatal (filename, 'could not parse variation list')
+            if line == '\n':
+                break
+            self.known_variations.add (line.strip())
+            num_variations += 1
+        return num_variations
+
+    # Parse from the first line after 'Running target ...' to the end
+    # of the run's summary.
+    def parse_run (self, filename, file, tool, variation, num_variations):
+        header = None
+        harness = None
+        segment = None
+        final_using = 0
+
+        # If this is the first run for this variation, add any text before
+        # the first harness to the header.
+        if not variation.header:
+            segment = Segment (filename, file.tell())
+            variation.header = segment
+
+        # Parse the rest of the summary (the '# of ' lines).
+        if len (variation.counts) == 0:
+            variation.counts = self.zero_counts()
+
+        # Parse up until the first line of the summary.
+        if num_variations == 1:
+            end = '\t\t=== ' + tool.name + ' Summary ===\n'
+        else:
+            end = ('\t\t=== ' + tool.name + ' Summary for '
+                   + variation.name + ' ===\n')
+        while True:
+            line = file.readline()
+            if line == '':
+                self.fatal (filename, 'no recognised summary line')
+            if line == end:
+                break
+
+            # Look for the start of a new harness.
+            if line.startswith ('Running ') and line.endswith (' ...\n'):
+                # Close off the current harness segment, if any.
+                if harness:
+                    segment.lines -= final_using
+                    harness.add_segment (first_key, segment)
+                name = line[len ('Running '):-len(' ...\n')]
+                harness = variation.get_harness (name)
+                segment = Segment (filename, file.tell())
+                first_key = None
+                final_using = 0
+                continue
+
+            # Record test results.  Associate the first test result with
+            # the harness segment, so that if a run for a particular harness
+            # has been split up, we can reassemble the individual segments
+            # in a sensible order.
+            #
+            # dejagnu sometimes issues warnings about the testing environment
+            # before running any tests.  Treat them as part of the header
+            # rather than as a test result.
+            match = self.result_re.match (line)
+            if match and (harness or not line.startswith ('WARNING:')):
+                if not harness:
+                    self.fatal (filename, 'saw test result before harness name')
+                name = match.group (2)
+                # Ugly hack to get the right order for gfortran.
+                if name.startswith ('gfortran.dg/g77/'):
+                    name = 'h' + name
+                key = (name, len (harness.results))
+                harness.results.append ((key, line))
+                if not first_key and sort_logs:
+                    first_key = key
+                if line.startswith ('ERROR: (DejaGnu)'):
+                    for i in range (len (self.count_names)):
+                        if 'DejaGnu errors' in self.count_names[i]:
+                            variation.counts[i] += 1
+                            break
+
+            # 'Using ...' lines are only interesting in a header.  Splitting
+            # the test up into parallel runs leads to more 'Using ...' lines
+            # than there would be in a single log.
+            if line.startswith ('Using '):
+                final_using += 1
+            else:
+                final_using = 0
+
+            # Add other text to the current segment, if any.
+            if segment:
+                segment.lines += 1
+
+        # Close off the final harness segment, if any.
+        if harness:
+            segment.lines -= final_using
+            harness.add_segment (first_key, segment)
+
+        while True:
+            before = file.tell()
+            line = file.readline()
+            if line == '':
+                break
+            if line == '\n':
+                continue
+            if not line.startswith ('# '):
+                file.seek (before)
+                break
+            found = False
+            for i in range (len (self.count_names)):
+                if line.startswith (self.count_names[i]):
+                    count = line[len (self.count_names[i]):-1].strip()
+                    variation.counts[i] += self.parse_int (filename, count)
+                    found = True
+                    break
+            if not found:
+                self.fatal (filename, 'unknown test result: ' + line[:-1])
+
+    # Parse an acats run, which uses a different format from dejagnu.
+    # We have just skipped over '=== acats configuration ==='.
+    def parse_acats_run (self, filename, file):
+        # Parse the preamble, which describes the configuration and logs
+        # the creation of support files.
+        record = (self.acats_premable == '')
+        if record:
+            self.acats_premable = '\t\t=== acats configuration ===\n'
+        while True:
+            line = file.readline()
+            if line == '':
+                self.fatal (filename, 'could not parse acats preamble')
+            if line == '\t\t=== acats tests ===\n':
+                break
+            if record:
+                self.acats_premable += line
+
+        # Parse the test results themselves, using a dummy variation name.
+        tool = self.get_tool ('acats')
+        variation = tool.get_variation ('none')
+        self.parse_run (filename, file, tool, variation, 1)
+
+        # Parse the failure list.
+        while True:
+            before = file.tell()
+            line = file.readline()
+            if line.startswith ('*** FAILURES: '):
+                self.acats_failures.append (line[len ('*** FAILURES: '):-1])
+                continue
+            file.seek (before)
+            break
+
+    # Parse the final summary at the end of a log in order to capture
+    # the version output that follows it.
+    def parse_final_summary (self, filename, file):
+        record = (self.version_output == '')
+        while True:
+            line = file.readline()
+            if line == '':
+                break
+            if line.startswith ('# of '):
+                continue
+            if record:
+                self.version_output += line
+            if line == '\n':
+                break
+
+    # Parse a .log or .sum file.
+    def parse_file (self, filename, file):
+        tool = None
+        target = None
+        num_variations = 1
+        while True:
+            line = file.readline()
+            if line == '':
+                return
+
+            # Parse the list of variations, which comes before the test
+            # runs themselves.
+            if line.startswith ('Schedule of variations:'):
+                num_variations = self.parse_variations (filename, file)
+                continue
+
+            # Parse a testsuite run for one tool/variation combination.
+            if line.startswith ('Running target '):
+                name = line[len ('Running target '):-1]
+                if not tool:
+                    self.fatal (filename, 'could not parse tool name')
+                if name not in self.known_variations:
+                    self.fatal (filename, 'unknown target: ' + name)
+                self.parse_run (filename, file, tool,
+                                tool.get_variation (name),
+                                num_variations)
+                # If there is only one variation then there is no separate
+                # summary for it.  Record any following version output.
+                if num_variations == 1:
+                    self.parse_final_summary (filename, file)
+                continue
+
+            # Parse the start line.  In the case where several files are being
+            # parsed, pick the one with the earliest time.
+            match = self.test_run_re.match (line)
+            if match:
+                time = self.parse_time (match.group (2))
+                if not self.start_line or self.start_line[0] > time:
+                    self.start_line = (time, line)
+                continue
+
+            # Parse the form used for native testing.
+            if line.startswith ('Native configuration is '):
+                self.native_line = line
+                continue
+
+            # Parse the target triplet.
+            if line.startswith ('Target is '):
+                self.target_line = line
+                continue
+
+            # Parse the host triplet.
+            if line.startswith ('Host   is '):
+                self.host_line = line
+                continue
+
+            # Parse the acats premable.
+            if line == '\t\t=== acats configuration ===\n':
+                self.parse_acats_run (filename, file)
+                continue
+
+            # Parse the tool name.
+            match = self.tool_re.match (line)
+            if match:
+                tool = self.get_tool (match.group (1))
+                continue
+
+            # Skip over the final summary (which we instead create from
+            # individual runs) and parse the version output.
+            if tool and line == '\t\t=== ' + tool.name + ' Summary ===\n':
+                if file.readline() != '\n':
+                    self.fatal (filename, 'expected blank line after summary')
+                self.parse_final_summary (filename, file)
+                continue
+
+            # Parse the completion line.  In the case where several files
+            # are being parsed, pick the one with the latest time.
+            match = self.completed_re.match (line)
+            if match:
+                time = self.parse_time (match.group (1))
+                if not self.end_line or self.end_line[0] < time:
+                    self.end_line = (time, line)
+                continue
+
+            # Sanity check to make sure that important text doesn't get
+            # dropped accidentally.
+            if strict and line.strip() != '':
+                self.fatal (filename, 'unrecognised line: ' + line[:-1])
+
+    # Output a segment of text.
+    def output_segment (self, segment):
+        with safe_open (segment.filename) as file:
+            file.seek (segment.start)
+            for i in range (segment.lines):
+                sys.stdout.write (file.readline())
+
+    # Output a summary giving the number of times each type of result has
+    # been seen.
+    def output_summary (self, tool, counts):
+        for i in range (len (self.count_names)):
+            name = self.count_names[i]
+            # dejagnu only prints result types that were seen at least once,
+            # but acats always prints a number of unexpected failures.
+            if (counts[i] > 0
+                or (tool.name == 'acats'
+                    and name.startswith ('# of unexpected failures'))):
+                sys.stdout.write ('%s%d\n' % (name, counts[i]))
+
+    # Output unified .log or .sum information for a particular variation,
+    # with a summary at the end.
+    def output_variation (self, tool, variation):
+        self.output_segment (variation.header)
+        for harness in sorted (variation.harnesses.values(),
+                               key = attrgetter ('name')):
+            sys.stdout.write ('Running ' + harness.name + ' ...\n')
+            if self.do_sum:
+                harness.results.sort()
+                for (key, line) in harness.results:
+                    sys.stdout.write (line)
+            else:
+                # Rearrange the log segments into test order (but without
+                # rearranging text within those segments).
+                for key in sorted (harness.segments.keys()):
+                    self.output_segment (harness.segments[key])
+                for segment in harness.empty:
+                    self.output_segment (segment)
+        if len (self.variations) > 1:
+            sys.stdout.write ('\t\t=== ' + tool.name + ' Summary for '
+                              + variation.name + ' ===\n\n')
+            self.output_summary (tool, variation.counts)
+
+    # Output unified .log or .sum information for a particular tool,
+    # with a summary at the end.
+    def output_tool (self, tool):
+        counts = self.zero_counts()
+        if tool.name == 'acats':
+            # acats doesn't use variations, so just output everything.
+            # It also has a different approach to whitespace.
+            sys.stdout.write ('\t\t=== ' + tool.name + ' tests ===\n')
+            for variation in tool.variations.values():
+                self.output_variation (tool, variation)
+                self.accumulate_counts (counts, variation.counts)
+            sys.stdout.write ('\t\t=== ' + tool.name + ' Summary ===\n')
+        else:
+            # Output the results in the usual dejagnu runtest format.
+            sys.stdout.write ('\n\t\t=== ' + tool.name + ' tests ===\n\n'
+                              'Schedule of variations:\n')
+            for name in self.variations:
+                if name in tool.variations:
+                    sys.stdout.write ('    ' + name + '\n')
+            sys.stdout.write ('\n')
+            for name in self.variations:
+                if name in tool.variations:
+                    variation = tool.variations[name]
+                    sys.stdout.write ('Running target '
+                                      + variation.name + '\n')
+                    self.output_variation (tool, variation)
+                    self.accumulate_counts (counts, variation.counts)
+            sys.stdout.write ('\n\t\t=== ' + tool.name + ' Summary ===\n\n')
+        self.output_summary (tool, counts)
+
+    def main (self):
+        self.parse_cmdline()
+        try:
+            # Parse the input files.
+            for filename in self.files:
+                with safe_open (filename) as file:
+                    self.parse_file (filename, file)
+
+            # Decide what to output.
+            if len (self.variations) == 0:
+                self.variations = sorted (self.known_variations)
+            else:
+                for name in self.variations:
+                    if name not in self.known_variations:
+                        self.fatal (None, 'no results for ' + name)
+            if len (self.tools) == 0:
+                self.tools = sorted (self.runs.keys())
+
+            # Output the header.
+            if self.start_line:
+                sys.stdout.write (self.start_line[1])
+            sys.stdout.write (self.native_line)
+            sys.stdout.write (self.target_line)
+            sys.stdout.write (self.host_line)
+            sys.stdout.write (self.acats_premable)
+
+            # Output the main body.
+            for name in self.tools:
+                if name not in self.runs:
+                    self.fatal (None, 'no results for ' + name)
+                self.output_tool (self.runs[name])
+
+            # Output the footer.
+            if len (self.acats_failures) > 0:
+                sys.stdout.write ('*** FAILURES: '
+                                  + ' '.join (self.acats_failures) + '\n')
+            sys.stdout.write (self.version_output)
+            if self.end_line:
+                sys.stdout.write (self.end_line[1])
+        except IOError as e:
+            self.fatal (e.filename, e.strerror)
+
+Prog().main()
diff --git a/gdb/testsuite/dg-extract-results.sh b/contrib/dg-extract-results.sh
rename from gdb/testsuite/dg-extract-results.sh
rename to contrib/dg-extract-results.sh
--- a/gdb/testsuite/dg-extract-results.sh
+++ b/contrib/dg-extract-results.sh
@@ -6,7 +6,7 @@
 # The resulting file can be used with test result comparison scripts for
 # results from tests that were run in parallel.  See usage() below.
 
-# Copyright (C) 2008-2018 Free Software Foundation, Inc.
+# Copyright (C) 2008, 2009, 2010, 2012 Free Software Foundation
 # Contributed by Janis Johnson <janis187@us.ibm.com>
 #
 # This file is part of GCC.
@@ -22,7 +22,9 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# along with GCC; see the file COPYING.  If not, write to
+# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
 
 PROGNAME=dg-extract-results.sh
 
@@ -30,7 +32,7 @@ PROGNAME=dg-extract-results.sh
 PYTHON_VER=`echo "$0" | sed 's/sh$/py/'`
 if test "$PYTHON_VER" != "$0" &&
    test -f "$PYTHON_VER" &&
-   python -c 'import sys; sys.exit (0 if sys.version_info >= (2, 6) else 1)' \
+   python -c 'import sys, getopt, re, io, datetime, operator; sys.exit (0 if sys.version_info >= (2, 6) else 1)' \
      > /dev/null 2> /dev/null; then
   exec python $PYTHON_VER "$@"
 fi
@@ -367,10 +369,11 @@ EOF
 BEGIN {
   variant="$VAR"
   tool="$TOOL"
-  passcnt=0; failcnt=0; untstcnt=0; xpasscnt=0; xfailcnt=0; kpasscnt=0; kfailcnt=0; unsupcnt=0; unrescnt=0;
+  passcnt=0; failcnt=0; untstcnt=0; xpasscnt=0; xfailcnt=0; kpasscnt=0; kfailcnt=0; unsupcnt=0; unrescnt=0; dgerrorcnt=0;
   curvar=""; insummary=0
 }
 /^Running target /		{ curvar = \$3; next }
+/^ERROR: \(DejaGnu\)/		{ if (variant == curvar) dgerrorcnt += 1 }
 /^# of /			{ if (variant == curvar) insummary = 1 }
 /^# of expected passes/		{ if (insummary == 1) passcnt += \$5; next; }
 /^# of unexpected successes/	{ if (insummary == 1) xpasscnt += \$5; next; }
@@ -388,6 +391,7 @@ BEGIN {
 { next }
 END {
   printf ("\t\t=== %s Summary for %s ===\n\n", tool, variant)
+  if (dgerrorcnt != 0) printf ("# of DejaGnu errors\t\t%d\n", dgerrorcnt)
   if (passcnt != 0) printf ("# of expected passes\t\t%d\n", passcnt)
   if (failcnt != 0) printf ("# of unexpected failures\t%d\n", failcnt)
   if (xpasscnt != 0) printf ("# of unexpected successes\t%d\n", xpasscnt)
@@ -417,8 +421,9 @@ TOTAL_AWK=${TMP}/total.awk
 cat << EOF > $TOTAL_AWK
 BEGIN {
   tool="$TOOL"
-  passcnt=0; failcnt=0; untstcnt=0; xpasscnt=0; xfailcnt=0; kfailcnt=0; unsupcnt=0; unrescnt=0
+  passcnt=0; failcnt=0; untstcnt=0; xpasscnt=0; xfailcnt=0; kfailcnt=0; unsupcnt=0; unrescnt=0; dgerrorcnt=0
 }
+/^# of DejaGnu errors/		{ dgerrorcnt += \$5 }
 /^# of expected passes/		{ passcnt += \$5 }
 /^# of unexpected failures/	{ failcnt += \$5 }
 /^# of unexpected successes/	{ xpasscnt += \$5 }
@@ -430,6 +435,7 @@ BEGIN {
 /^# of unsupported tests/	{ unsupcnt += \$5 }
 END {
   printf ("\n\t\t=== %s Summary ===\n\n", tool)
+  if (dgerrorcnt != 0) printf ("# of DejaGnu errors\t\t%d\n", dgerrorcnt)
   if (passcnt != 0) printf ("# of expected passes\t\t%d\n", passcnt)
   if (failcnt != 0) printf ("# of unexpected failures\t%d\n", failcnt)
   if (xpasscnt != 0) printf ("# of unexpected successes\t%d\n", xpasscnt)
diff --git a/gdb/testsuite/Makefile.in b/gdb/testsuite/Makefile.in
--- a/gdb/testsuite/Makefile.in
+++ b/gdb/testsuite/Makefile.in
@@ -217,9 +217,9 @@ check-parallel:
 	-rm -rf cache outputs temp
 	$(MAKE) -k do-check-parallel; \
 	result=$$?; \
-	$(SHELL) $(srcdir)/dg-extract-results.sh \
+	$(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh \
 	  `find outputs -name gdb.sum -print` > gdb.sum; \
-	$(SHELL) $(srcdir)/dg-extract-results.sh -L \
+	$(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh -L \
 	  `find outputs -name gdb.log -print` > gdb.log; \
 	sed -n '/=== gdb Summary ===/,$$ p' gdb.sum; \
 	exit $$result
@@ -237,10 +237,10 @@ check-parallel-racy:
 	for n in `seq $$racyiter` ; do \
 	  $(MAKE) -k do-check-parallel-racy \
 	    RACY_OUTPUT_N=$$n; \
-	  $(SHELL) $(srcdir)/dg-extract-results.sh \
+	  $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh \
 	    `find racy_outputs/$$n -name gdb.sum -print` > \
 	    racy_outputs/$$n/gdb.sum; \
-	  $(SHELL) $(srcdir)/dg-extract-results.sh -L \
+	  $(SHELL) $(srcdir)/../../dg-extract-results.sh -L \
 	    `find racy_outputs/$$n -name gdb.log -print` > \
 	    racy_outputs/$$n/gdb.log; \
 	  sed -n '/=== gdb Summary ===/,$$ p' racy_outputs/$$n/gdb.sum; \

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

* Re: Update dg-extract-results.* from gcc
  2018-07-31 12:44   ` Rainer Orth
  2018-08-06 13:50     ` Rainer Orth
@ 2018-08-07 11:52     ` Rainer Orth
  1 sibling, 0 replies; 19+ messages in thread
From: Rainer Orth @ 2018-08-07 11:52 UTC (permalink / raw)
  To: Tom Tromey; +Cc: gdb-patches, Alexandre Oliva

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

Hi Tom,

getting back to making gcc's mail-report.log target work...

>> Rainer> * One could also copy over gcc's contrib/test_summary, used by the
>> Rainer>   toplevel make mail-report.log to provide a nice summary of test
>> Rainer>   results.  However, this is currently hampered by the fact that for
>> Rainer>   parallel make check the gdb.sum and gdb.log files are left in
>> Rainer>   outputs/*/*/gdb.{sum,log} after dg-extract-results.sh has run
>> Rainer> instead
>> Rainer>   of moving them to *.sep like gcc's gcc/Makefile.in does, so
>> Rainer>   mail-report.log lists every failure twice.
>>
>> I don't understand the "*.sep" comment - would you mind spelling it out?
>
> The test_summary scripts works by searching for *.sum and *.log files in
> the whole tree (given that those live at different levels in the build
> tree and cannot easily be found with a glob pattern).
>
> Currently, once dg-extract-results.sh has summarized the individual
> gdb.sum and gdb.log files in outputs, we have both the individual
> per-subdir files in place and the summarized one in gdb/testsuite.  When
> test_summary runs, it find all of of those and lists every non-PASS
> result twice in its output, which isn't particularly helpful.
>
> To avoid this, the gcc testsuite moves the subdir .sum/.log files for
> parallelized testsuites to .sum.sep/.log.sep before passing them to
> dg-extract-results.sh.  This way, we get one summary per testsuite
> (e.g. gcc or g++, or gdb in the case at hand), and test_summary won't
> pick them up twice.
>
>> Anyway, if this script is useful to you, it's fine with me if you want
>> to find a way to make it work.  I think the outputs/** stuff can be
>> moved around or messed with pretty freely, though of course it is best
>> not to outright lose things.
>
> Absolutely: as I said, the individual files are just moved aside not to
> interfere with the likes of test_summary, but still left in place since
> dg-extract-results.* isn't always perfect in merging them.
>
> I'll go ahead and prepare a patch then.

Here's the mechanical part of such a patch, tested on
amd64-pc-solaris2.11 and making sure that both gdb make check and make
check-parallel-racy produce identical gdb.sum and racy.sum files (modulo
racy tests, of course).

However, looking at the resulting output, there are some issues to be
decided before the result can be fully useful.  I'm attaching an example
output file for reference, from a Solaris 11/amd64 build with
--disable-binutils --disable-gas --disable-ld --disable-sim.

* Right now, the output talks of

  Compiler version: 8.2.50.20180803-git ...

  even when this is for gdb (or binutils) test results.

* The resulting script would mail testsuite results to
  gcc-testresults@gcc.gnu.org; clearly not useful for gdb or binutils.
  While we could use gdb-testers@sourceware.org for gdb (where Andreas
  Krebbel already posts very similarly formatted results for
  Linux/s390x) and there's even an (apparently unused)
  gdb-testresults@sourceware.org list as I just happened to find at
  https://sourceware.org/lists.html#gdb, there seems to be no equivalent
  for binutils test results.

  I think the contrib/test_summary script should provide decent defaults
  depending on which tree it is run in.

* There are 3 scenarios, I believe:

  gcc tree, already handled
  binutils-gdb tree, binutils results
  binutils-gdb tree, gdb results

  I believe the result in the binutils-gdb tree should be the same as
  what would happen in a binutils or gdb release tarball, i.e. the same
  results summarized in each case.  This could be done using the same
  lists of subdirs used by src-release.sh to create the respective
  tarballs.

  In theory, there's still the combined tree case, although I have no
  idea if it is still common these days.

My current thinking is that the toplevel mail-report.log target would
create all summaries suitable for the current tree, either by passing
corresponding -t [gcc|binutils|gdb] options to test_summary or letting
the script figure that out on its own, creating

* mail-report.log for gcc, keeping the name for backward compatibility,

* binutils-report.log and/or gdb-report.log if either or both
  binutils/gas/ld and gdb/sim builds are present in the tree.

Thoughts?

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


2018-08-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	gdb/testsuite:
	* Makefile.in (check-parallel): Move gdb.sum, gdb.log to
	gdb.sum.sep, gdb.log.sep before summarizing.
	(check-parallel-racy): Likewise.

	contrib:
	* test_summary: New file from gcc repo.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: gdb-mail-report.log.patch --]
[-- Type: text/x-patch, Size: 7785 bytes --]

# HG changeset patch
# Parent  09a136c459e46cbf4007b68ce3ee2d2062b3448d
Support mail-report.log

diff --git a/contrib/test_summary b/contrib/test_summary
new file mode 100755
--- /dev/null
+++ b/contrib/test_summary
@@ -0,0 +1,157 @@
+#! /bin/sh
+
+# (C) 1998, 1999, 2000, 2002, 2003, 2004, 2007, 2009, 2010
+# Free Software Foundation
+# Originally by Alexandre Oliva <oliva@dcc.unicamp.br>
+
+# This script is Free Software, and it can be copied, distributed and
+# modified as defined in the GNU General Public License.  A copy of
+# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
+
+# This script processes *.{sum,log} files, producing a shell-script
+# that sends e-mail to the appropriate lists and renames files to
+# *.sent.  It currently handles only gcc, but it should be quite easy
+# to modify it to handle other packages and its mailing lists.
+
+# The scripts assumes it is run in the root directory of the build
+# tree, and it will include all .sum files it finds in the mail
+# report.
+
+# configure flags are extracted from ./config.status
+
+# if the BOOT_CFLAGS environment variable is set, it will be included
+# in the mail report too.
+
+# The usage pattern of this script is as follows:
+
+# test_summary | more   # so as to observe what should be done
+
+# test_summary | sh     # so as to actually send e-mail and move log files
+
+# It accepts a few command line arguments.  For example:
+if test x"$1" = "x-h"; then
+  cat <<_EOF
+ -o: re-reads logs that have been mailed already (.sum.sent)
+ -t: prevents logs from being renamed
+ -p: prepend specified file (or list of files: -p "a b") to the report
+ -i: append specified file (or list of files: -i "a b") to the report
+ -m: specify the e-mail address to send notes to.  An appropriate default
+     should be selected from the log files.
+ -f: force reports to be mailed; if omitted, only reports that differ
+     from the sent.* version are sent.
+_EOF
+  exit 0
+fi
+
+# Find a good awk.
+if test -z "$AWK" ; then
+  for AWK in gawk nawk awk ; do
+    if type $AWK 2>&1 | grep 'not found' > /dev/null 2>&1 ; then
+      :
+    else
+      break
+    fi
+  done
+fi
+
+: ${filesuffix=}; export filesuffix
+: ${move=true}; export move
+: ${forcemail=false}; export forcemail
+while true; do
+    case "$1" in 
+      -o) filesuffix=.sent; move=false; : ${mailto=nobody}; shift;;
+      -t) move=false; shift;;
+      -p) prepend_logs=${prepend_logs+"$prepend_logs "}"$2"; shift 2;;
+      -i) append_logs=${append_logs+"$append_logs "}"$2"; shift 2;;
+      -m) mailto=$2; forcemail=true; shift 2;;
+      -f) unset mailto; forcemail=true; shift;;
+      *) break;;
+    esac
+done
+: ${mailto="\" address \""}; export mailto
+files=`find . -name \*.sum$filesuffix -print | sort`
+anyfile=false anychange=$forcemail &&
+for file in $files; do
+    [ -f $file ] &&
+    anyfile=true &&
+    { $anychange ||
+      anychange=`diff $file.sent $file 2>/dev/null |
+	if test ! -f $file.sent ||
+	   egrep '^[<>] (XPASS|FAIL)' >/dev/null; then
+	    echo true
+	else
+	    echo false
+	fi
+      `
+    }
+    true
+done &&
+$anyfile &&
+if $forcemail || $anychange; then :; else mailto=nobody; fi &&
+# We use cat instead of listing the files as arguments to AWK because
+# GNU awk 3.0.0 would break if any of the filenames contained `=' and
+# was preceded by an invalid ``variable'' name.
+( echo @TOPLEVEL_CONFIGURE_ARGUMENTS@ | ./config.status --file=-; cat $files ) |
+$AWK '
+BEGIN {
+  lang=""; configflags = "";
+  address="gcc-testresults@gcc.gnu.org";
+  version="gcc";
+  print "cat <<'"'"'EOF'"'"' |";
+'${prepend_logs+"  system(\"cat $prepend_logs\"); "}'
+}
+NR == 1 {
+    configflags = $0 " ";
+    srcdir = configflags;
+    sub(/\/configure\047? .*/, "", srcdir);
+    sub(/^\047/, "", srcdir);
+    if ( system("test -f " srcdir "/LAST_UPDATED") == 0 ) {
+        printf "LAST_UPDATED: ";
+        system("tail -1 " srcdir "/LAST_UPDATED");
+        print "";
+    }
+
+    sub(/^[^ ]*\/configure\047? */, " ", configflags);
+    sub(/,;t t $/, " ", configflags);
+    sub(/ --with-gcc-version-trigger=[^ ]* /, " ", configflags);
+    sub(/ --norecursion /, " ", configflags);
+    sub(/ $/, "", configflags);
+    sub(/^ *$/, " none", configflags);
+    configflags = "configure flags:" configflags;
+}
+/^Running target / { print ""; print; }
+/^Target / { if (host != "") next; else host = $3; }
+/^Host / && host ~ /^unix\{.*\}$/ { host = $3 " " substr(host, 5); }
+/^Native / { if (host != "") next; else host = $4; }
+/^[ 	]*=== [^ 	]+ tests ===/ {
+  if (lang == "") lang = " "$2" "; else lang = " ";
+}
+$2 == "version" { save = $0; $1 = ""; $2 = ""; version = $0; gsub(/^ */, "", version); gsub(/\r$/, "", version); $0 = save; }
+/\===.*Summary/ { print ""; print; blanks=1; }
+/tests ===/ || /^(Target|Host|Native)/ || $2 == "version" { print; blanks=1; }
+/^(XPASS|FAIL|UNRESOLVED|WARNING|ERROR|# of )/ { sub ("\r", ""); print; }
+/^using:/ { print ""; print; print ""; }
+# dumpall != 0 && /^X?(PASS|FAIL|UNTESTED)|^testcase/ { dumpall=0; }
+# dumpall != 0 { print; }
+# /^FAIL/ { dumpall=1; }
+/^$/ && blanks>0 { print; --blanks; }
+END { if (lang != "") {
+  print "";
+  print "Compiler version: " prefix version lang;
+  print "Platform: " host;
+  print configflags;
+  '${BOOT_CFLAGS+'print "BOOT_CFLAGS='"${BOOT_CFLAGS}"'";'}'
+  if (boot_cflags != 0) print boot_cflags;
+'${append_logs+"  system(\"cat $append_logs\"); "}'
+  print "EOF";
+  print "Mail -s \"Results for " prefix version lang "testsuite on " host "\" '"${mailto}"' &&";
+}}
+{ next; }
+' | sed "s/\([\`\$\\\\]\)/\\\\\\1/g" &&
+if $move; then
+    for file in $files `ls -1 $files | sed s/sum$/log/`; do
+      [ -f $file ] && echo "mv `${PWDCMD-pwd}`/$file `${PWDCMD-pwd}`/$file.sent &&"
+    done
+fi &&
+echo true
+exit 0
diff --git a/gdb/testsuite/Makefile.in b/gdb/testsuite/Makefile.in
--- a/gdb/testsuite/Makefile.in
+++ b/gdb/testsuite/Makefile.in
@@ -217,10 +217,12 @@ check-parallel:
 	-rm -rf cache outputs temp
 	$(MAKE) -k do-check-parallel; \
 	result=$$?; \
+	find outputs -name gdb.sum -exec mv \{\} \{\}.sep \; ; \
+	find outputs -name gdb.log -exec mv \{\} \{\}.sep \; ; \
 	$(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh \
-	  `find outputs -name gdb.sum -print` > gdb.sum; \
+	  `find outputs -name gdb.sum.sep -print` > gdb.sum; \
 	$(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh -L \
-	  `find outputs -name gdb.log -print` > gdb.log; \
+	  `find outputs -name gdb.log.sep -print` > gdb.log; \
 	sed -n '/=== gdb Summary ===/,$$ p' gdb.sum; \
 	exit $$result
 
@@ -237,16 +239,18 @@ check-parallel-racy:
 	for n in `seq $$racyiter` ; do \
 	  $(MAKE) -k do-check-parallel-racy \
 	    RACY_OUTPUT_N=$$n; \
+	  find racy_outputs/$$n -name gdb.sum -exec mv \{\} \{\}.sep \; ; \
+	  find racy_outputs/$$n -name gdb.log -exec mv \{\} \{\}.sep \; ; \
 	  $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh \
-	    `find racy_outputs/$$n -name gdb.sum -print` > \
-	    racy_outputs/$$n/gdb.sum; \
+	    `find racy_outputs/$$n -name gdb.sum.sep -print` > \
+	    racy_outputs/$$n/gdb.sum.sep; \
 	  $(SHELL) $(srcdir)/../../dg-extract-results.sh -L \
-	    `find racy_outputs/$$n -name gdb.log -print` > \
-	    racy_outputs/$$n/gdb.log; \
-	  sed -n '/=== gdb Summary ===/,$$ p' racy_outputs/$$n/gdb.sum; \
+	    `find racy_outputs/$$n -name gdb.log.sep -print` > \
+	    racy_outputs/$$n/gdb.log.sep; \
+	  sed -n '/=== gdb Summary ===/,$$ p' racy_outputs/$$n/gdb.sum.sep; \
 	done; \
 	$(srcdir)/analyze-racy-logs.py \
-	  `ls racy_outputs/*/gdb.sum` > racy.sum; \
+	  `ls racy_outputs/*/gdb.sum.sep` > racy.sum; \
 	sed -n '/=== gdb Summary ===/,$$ p' racy.sum
 
 # Turn a list of .exp files into "check/" targets.  Only examine .exp

[-- Attachment #3: mail-report.log --]
[-- Type: text/plain, Size: 231650 bytes --]

cat <<'EOF' |
Native configuration is x86_64-pc-solaris2.11

		=== gdb tests ===


Running target unix
XPASS: gdb.ada/funcall_ref.exp: p get ("Hello world!")
XPASS: gdb.ada/funcall_ref.exp: ptype get ("Hello world!")
FAIL: gdb.ada/mi_task_arg.exp: -stack-list-arguments 1 (unexpected output)
FAIL: gdb.ada/operator_bp.exp: break "+"
FAIL: gdb.ada/operator_bp.exp: break "-"
FAIL: gdb.ada/operator_bp.exp: break "<"
FAIL: gdb.ada/operator_bp.exp: break "<="
FAIL: gdb.ada/operator_bp.exp: break "="
FAIL: gdb.ada/operator_bp.exp: break ">"
FAIL: gdb.ada/operator_bp.exp: break ">="
FAIL: gdb.ada/operator_bp.exp: break "and"
FAIL: gdb.ada/operator_bp.exp: break "not"
FAIL: gdb.ada/operator_bp.exp: break "or"
FAIL: gdb.ada/operator_bp.exp: break "xor"
FAIL: gdb.ada/str_binop_equal.exp: print my_str = "ABCD"
FAIL: gdb.ada/task_switch_in_core.exp: task 1
FAIL: gdb.arch/i386-disp-step.exp: break test_call
FAIL: gdb.arch/i386-disp-step.exp: break test_call_end
FAIL: gdb.arch/i386-disp-step.exp: break test_int3 (GDB internal error)
FAIL: gdb.arch/i386-disp-step.exp: break test_int3_end (GDB internal error)
FAIL: gdb.arch/i386-disp-step.exp: break test_prefixed_abs_jump
FAIL: gdb.arch/i386-disp-step.exp: break test_prefixed_abs_jump_end
FAIL: gdb.arch/i386-disp-step.exp: break test_prefixed_syscall
FAIL: gdb.arch/i386-disp-step.exp: break test_prefixed_syscall_end
FAIL: gdb.arch/i386-disp-step.exp: break test_ret
FAIL: gdb.arch/i386-disp-step.exp: break test_ret_end
FAIL: gdb.arch/i386-disp-step.exp: break test_syscall
FAIL: gdb.arch/i386-disp-step.exp: break test_syscall_end
FAIL: gdb.arch/i386-disp-step.exp: continue to test_int3
FAIL: gdb.arch/i386-disp-step.exp: continue to test_int3_end
FAIL: gdb.arch/i386-disp-step.exp: continue to test_prefixed_syscall
FAIL: gdb.arch/i386-disp-step.exp: continue to test_prefixed_syscall_end
FAIL: gdb.arch/i386-disp-step.exp: continue to test_syscall_end
FAIL: gdb.arch/i386-disp-step.exp: continue until exit at i386-disp-step
FAIL: gdb.arch/i386-dr3-watch.exp: continue to i1 watchpoint
FAIL: gdb.arch/i386-dr3-watch.exp: continue to i2 watchpoint
FAIL: gdb.arch/i386-dr3-watch.exp: continue to i3 watchpoint
FAIL: gdb.arch/i386-dr3-watch.exp: continue to i4 watchpoint
FAIL: gdb.arch/i386-dr3-watch.exp: set watchpoint occuping one debug register
FAIL: gdb.arch/i386-dr3-watch.exp: watch i1
FAIL: gdb.arch/i386-dr3-watch.exp: watch i2
FAIL: gdb.arch/i386-dr3-watch.exp: watch i3
FAIL: gdb.arch/i386-dr3-watch.exp: watch i4
FAIL: gdb.arch/i386-float.exp: bigval: stepi
FAIL: gdb.arch/i386-float.exp: smallval: stepi
FAIL: gdb.arch/i386-float.exp: val: stepi
FAIL: gdb.arch/i386-float.exp: zero: stepi
FAIL: gdb.arch/i386-gnu-cfi.exp: continue to abort()
FAIL: gdb.arch/i386-gnu-cfi.exp: existence of the CFI inserted register
FAIL: gdb.arch/i386-gnu-cfi.exp: shift up to the modified frame
FAIL: gdb.arch/i386-prologue.exp: continue in stack_align_eax
FAIL: gdb.arch/i386-prologue.exp: continue in stack_align_ecx
FAIL: gdb.arch/i386-prologue.exp: continue in stack_align_edx
FAIL: gdb.arch/i386-prologue.exp: continue to gdb1253
FAIL: gdb.arch/i386-prologue.exp: continue to gdb1338
FAIL: gdb.arch/i386-prologue.exp: continue to gdb1718
FAIL: gdb.arch/i386-prologue.exp: continue to standard
FAIL: gdb.arch/i386-size-overlap.exp: run past main
FAIL: gdb.arch/i386-size.exp: run past main
FAIL: gdb.arch/i386-sse-stack-align.exp: print (int) g0 ()
FAIL: gdb.arch/i386-sse-stack-align.exp: print (int) g1 (1)
FAIL: gdb.arch/i386-sse-stack-align.exp: print (int) g2 (1, 2)
FAIL: gdb.arch/i386-sse-stack-align.exp: print (int) g3 (1, 2, 3)
FAIL: gdb.arch/i386-sse-stack-align.exp: print (int) g4 (1, 2, 3, 4)
FAIL: gdb.arch/i386-unwind.exp: run past gdb1435
FAIL: gdb.base/annota1.exp: backtrace @ signal handler (timeout)
FAIL: gdb.base/annota1.exp: continue to printf
FAIL: gdb.base/annota1.exp: run until main breakpoint (timeout)
FAIL: gdb.base/annota1.exp: send SIGUSR1 (timeout)
FAIL: gdb.base/annota1.exp: signal sent (timeout)
FAIL: gdb.base/annota3.exp: backtrace @ signal handler (pattern 2)
FAIL: gdb.base/annota3.exp: signal sent (pattern 4)
ERROR: Undefined command "".
FAIL: gdb.base/attach.exp: attach when process' a.out not in cwd
FAIL: gdb.base/attach.exp: attach2, with no file
UNRESOLVED: gdb.base/attach.exp: cmdline attach run: run to main
FAIL: gdb.base/attach.exp: cmdline attach run: run to prompt
FAIL: gdb.base/attach.exp: starting with --pid
FAIL: gdb.base/auto-connect-native-target.exp: detach: start
FAIL: gdb.base/auto-connect-native-target.exp: disconnect: start
FAIL: gdb.base/auto-connect-native-target.exp: kill: start
FAIL: gdb.base/auto-connect-native-target.exp: run to exit: c (the program is no longer running)
FAIL: gdb.base/auto-connect-native-target.exp: run to exit: start
WARNING: Unrecognized tag value: 134545460 ???                                                 0x0
WARNING: Unrecognized tag value: 134548256 ???                                                 0x0
WARNING: Unrecognized tag value: 2023 ???                                                 0x0
WARNING: Unrecognized tag value: 2023 ???                                                 0x0
WARNING: Unrecognized tag value: 4268294144 ???                                                 0x0
WARNING: Unrecognized tag value: 4268670976 ???                                                 0x0
WARNING: Unrecognized tag value: 4278179219 ???                                                 0x0
WARNING: Unrecognized tag value: 4278179298 ???                                                 0x0
FAIL: gdb.base/auxv.exp: continue
FAIL: gdb.base/auxv.exp: continue
UNRESOLVED: gdb.base/auxv.exp: info auxv on gcore-created dump
FAIL: gdb.base/auxv.exp: info auxv on live process
FAIL: gdb.base/auxv.exp: info auxv on native core dump
FAIL: gdb.base/batch-preserve-term-settings.exp: batch run: echo test_echo (timeout)
FAIL: gdb.base/bg-execution-repeat.exp: c 1&: breakpoint hit 1 (timeout)
FAIL: gdb.base/bg-execution-repeat.exp: c 1&: breakpoint hit 2 (timeout)
FAIL: gdb.base/bg-execution-repeat.exp: c 1&: c 1&
FAIL: gdb.base/bg-execution-repeat.exp: c 1&: repeat bg command
FAIL: gdb.base/bg-execution-repeat.exp: c&: breakpoint hit 1 (timeout)
FAIL: gdb.base/bg-execution-repeat.exp: c&: breakpoint hit 2 (timeout)
FAIL: gdb.base/bg-execution-repeat.exp: c&: c&
FAIL: gdb.base/bg-execution-repeat.exp: c&: repeat bg command
FAIL: gdb.base/bp-cmds-continue-ctrl-c.exp: attach: stop with control-c
FAIL: gdb.base/bp-cmds-continue-ctrl-c.exp: attach: stop with control-c (unexpected)
FAIL: gdb.base/bp-cmds-continue-ctrl-c.exp: run: stop with control-c
FAIL: gdb.base/bp-cmds-continue-ctrl-c.exp: run: stop with control-c (unexpected)
FAIL: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=0: basics: disabled permanent breakpoint doesn't explain stop
FAIL: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=0: basics: permanent breakpoint causes random signal
FAIL: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=0: stepi signal with handler: mainline pc points at permanent breakpoint
FAIL: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=0: stepi signal with handler: up to mainline code
FAIL: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=1: basics: disabled permanent breakpoint doesn't explain stop
FAIL: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=1: basics: permanent breakpoint causes random signal
FAIL: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=1: stepi signal with handler: mainline pc points at permanent breakpoint
FAIL: gdb.base/bp-permanent.exp: always_inserted=off, sw_watchpoint=1: stepi signal with handler: up to mainline code
FAIL: gdb.base/bp-permanent.exp: always_inserted=on, sw_watchpoint=0: basics: disabled permanent breakpoint doesn't explain stop
FAIL: gdb.base/bp-permanent.exp: always_inserted=on, sw_watchpoint=0: basics: permanent breakpoint causes random signal
FAIL: gdb.base/bp-permanent.exp: always_inserted=on, sw_watchpoint=0: stepi signal with handler: mainline pc points at permanent breakpoint
FAIL: gdb.base/bp-permanent.exp: always_inserted=on, sw_watchpoint=0: stepi signal with handler: up to mainline code
FAIL: gdb.base/bp-permanent.exp: always_inserted=on, sw_watchpoint=1: basics: disabled permanent breakpoint doesn't explain stop
FAIL: gdb.base/bp-permanent.exp: always_inserted=on, sw_watchpoint=1: basics: permanent breakpoint causes random signal
FAIL: gdb.base/bp-permanent.exp: always_inserted=on, sw_watchpoint=1: stepi signal with handler: mainline pc points at permanent breakpoint
FAIL: gdb.base/bp-permanent.exp: always_inserted=on, sw_watchpoint=1: stepi signal with handler: up to mainline code
FAIL: gdb.base/branch-to-self.exp: break-cond: side=host: continue to breakpoint: continue to break (timeout)
FAIL: gdb.base/branch-to-self.exp: break-cond: side=host: p counter (timeout)
FAIL: gdb.base/break-probes.exp: ensure using probes
FAIL: gdb.base/call-signal-resume.exp: continue to receipt of signal
FAIL: gdb.base/catch-follow-exec.exp: catch-follow-exec
ERROR: breakpoints not deleted
ERROR: breakpoints not deleted
ERROR: breakpoints not deleted
FAIL: gdb.base/catch-signal.exp: 1: continue
FAIL: gdb.base/catch-signal.exp: 1: continue to breakpoint: first INT
FAIL: gdb.base/catch-signal.exp: 1: continue to breakpoint: fourth HUP
FAIL: gdb.base/catch-signal.exp: 1: continue to breakpoint: third HUP
FAIL: gdb.base/catch-signal.exp: 1: delete all breakpoints in delete_breakpoints (GDB internal error)
FAIL: gdb.base/catch-signal.exp: 1: handle SIGHUP nostop noprint nopass
FAIL: gdb.base/catch-signal.exp: 1: handle SIGUSR1 nostop noprint pass
FAIL: gdb.base/catch-signal.exp: 1: override SIGINT to catch
FAIL: gdb.base/catch-signal.exp: 1: setting breakpoint at catch-signal.c:29 (GDB internal error)
FAIL: gdb.base/catch-signal.exp: 1: setting breakpoint at catch-signal.c:44 (GDB internal error)
UNRESOLVED: gdb.base/catch-signal.exp: 1: setting breakpoint at catch-signal.c:46 (GDB internal error)
FAIL: gdb.base/catch-signal.exp: 2nd line of save breakpoints for ''
FAIL: gdb.base/catch-signal.exp: 2nd line of save breakpoints for 'SIGHUP SIGUSR2'
FAIL: gdb.base/catch-signal.exp: 2nd line of save breakpoints for 'SIGHUP'
FAIL: gdb.base/catch-signal.exp: 2nd line of save breakpoints for 'all'
FAIL: gdb.base/catch-signal.exp: Number of lines of save breakpoints for ''
FAIL: gdb.base/catch-signal.exp: Number of lines of save breakpoints for 'SIGHUP SIGUSR2'
FAIL: gdb.base/catch-signal.exp: Number of lines of save breakpoints for 'SIGHUP'
FAIL: gdb.base/catch-signal.exp: Number of lines of save breakpoints for 'all'
FAIL: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue
FAIL: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: first INT
FAIL: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: fourth HUP
FAIL: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: continue to breakpoint: third HUP
FAIL: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: delete all breakpoints in delete_breakpoints (GDB internal error)
FAIL: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: handle SIGHUP nostop noprint nopass
FAIL: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: handle SIGUSR1 nostop noprint pass
FAIL: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: override SIGINT to catch
FAIL: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: setting breakpoint at catch-signal.c:29 (GDB internal error)
FAIL: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: setting breakpoint at catch-signal.c:44 (GDB internal error)
UNRESOLVED: gdb.base/catch-signal.exp: SIGHUP SIGUSR2: setting breakpoint at catch-signal.c:46 (GDB internal error)
FAIL: gdb.base/catch-signal.exp: SIGHUP: continue
FAIL: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: first INT
FAIL: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: fourth HUP
FAIL: gdb.base/catch-signal.exp: SIGHUP: continue to breakpoint: third HUP
FAIL: gdb.base/catch-signal.exp: SIGHUP: delete all breakpoints in delete_breakpoints (GDB internal error)
FAIL: gdb.base/catch-signal.exp: SIGHUP: handle SIGHUP nostop noprint nopass
FAIL: gdb.base/catch-signal.exp: SIGHUP: handle SIGUSR1 nostop noprint pass
FAIL: gdb.base/catch-signal.exp: SIGHUP: override SIGINT to catch
FAIL: gdb.base/catch-signal.exp: SIGHUP: setting breakpoint at catch-signal.c:29 (GDB internal error)
FAIL: gdb.base/catch-signal.exp: SIGHUP: setting breakpoint at catch-signal.c:44 (GDB internal error)
UNRESOLVED: gdb.base/catch-signal.exp: SIGHUP: setting breakpoint at catch-signal.c:46 (GDB internal error)
FAIL: gdb.base/catch-signal.exp: setting breakpoint at main (GDB internal error)
FAIL: gdb.base/catch-signal.exp: setting breakpoint at main (GDB internal error)
FAIL: gdb.base/catch-signal.exp: setting breakpoint at main (GDB internal error)
FAIL: gdb.base/catch-signal.exp: setting breakpoint at main (GDB internal error)
FAIL: gdb.base/consecutive.exp: stopped at bp, 2nd instr
ERROR: Couldn't send info files to GDB.
ERROR: Couldn't send quit to GDB.
FAIL: gdb.base/corefile.exp: \$_exitsignal prints SIGABRT (6)
FAIL: gdb.base/corefile.exp: args: -core=corefile.core (couldn't find regs)
FAIL: gdb.base/corefile.exp: attach: with core
FAIL: gdb.base/corefile.exp: backtrace in corefile.exp
FAIL: gdb.base/corefile.exp: core-file warning-free
FAIL: gdb.base/corefile.exp: print func2::coremaker_local
UNRESOLVED: gdb.base/corefile.exp: quit with a process
UNRESOLVED: gdb.base/corefile.exp: run: core file is cleared
FAIL: gdb.base/corefile.exp: run: with core
FAIL: gdb.base/corefile.exp: up in corefile.exp
FAIL: gdb.base/corefile.exp: up in corefile.exp (reinit)
FAIL: gdb.base/double-prompt-target-event-error.exp: ctrlc target event: continue: no double prompt (timeout)
FAIL: gdb.base/double-prompt-target-event-error.exp: ctrlc target event: continue: set height unlimited
FAIL: gdb.base/double-prompt-target-event-error.exp: ctrlc target event: wrapcont: no double prompt (timeout)
FAIL: gdb.base/double-prompt-target-event-error.exp: ctrlc target event: wrapcont: set height unlimited
FAIL: gdb.base/dprintf-detach.exp: bai=off ds=agent dd=off: re-attach to inferior
FAIL: gdb.base/dprintf-detach.exp: bai=off ds=agent dd=on: re-attach to inferior
FAIL: gdb.base/dprintf-detach.exp: bai=off ds=call dd=off: re-attach to inferior
FAIL: gdb.base/dprintf-detach.exp: bai=off ds=call dd=on: re-attach to inferior
FAIL: gdb.base/dprintf-detach.exp: bai=off ds=gdb dd=off: re-attach to inferior
FAIL: gdb.base/dprintf-detach.exp: bai=off ds=gdb dd=on: re-attach to inferior
FAIL: gdb.base/dprintf-detach.exp: bai=on ds=agent dd=off: re-attach to inferior
FAIL: gdb.base/dprintf-detach.exp: bai=on ds=agent dd=on: re-attach to inferior
FAIL: gdb.base/dprintf-detach.exp: bai=on ds=call dd=off: re-attach to inferior
FAIL: gdb.base/dprintf-detach.exp: bai=on ds=call dd=on: re-attach to inferior
FAIL: gdb.base/dprintf-detach.exp: bai=on ds=gdb dd=off: re-attach to inferior
FAIL: gdb.base/dprintf-detach.exp: bai=on ds=gdb dd=on: re-attach to inferior
FAIL: gdb.base/dprintf-non-stop.exp: can't run to main
FAIL: gdb.base/dprintf.exp: call: fprintf: 1st dprintf (timeout)
FAIL: gdb.base/dprintf.exp: call: fprintf: 2nd dprintf (timeout)
FAIL: gdb.base/ending-run.exp: step to end of run
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=0: take 1 char backward
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=0: take 1 string backward (1/6)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=0: take 1 string backward (2/6)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=0: take 1 string backward (3/6)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=0: take 1 string backward (4/6)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=0: take 1 string backward (5/6)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=0: take 1 string backward (6/6)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=0: take 4 characters backward
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=0: take 6 strings backward (pattern 1)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=0: take 6 strings forward (pattern 1)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=0: take 6 strings forward again (pattern 1)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=20: take 1 char backward
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=20: take 1 char backward again
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=20: take 1 string backward (1/6)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=20: take 1 string backward (2/6)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=20: take 1 string backward (3/6)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=20: take 1 string backward (4/6)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=20: take 1 string backward (5/6)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=20: take 1 string backward (6/6)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=20: take 6 strings backward (pattern 1)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=20: take 6 strings forward (pattern 1)
FAIL: gdb.base/examine-backward.exp: char-width=2, print-max=20: take 6 strings forward again (pattern 1)
FAIL: gdb.base/examine-backward.exp: set charset ASCII
FAIL: gdb.base/exitsignal.exp: \$_exitsignal is 11 (SIGSEGV) after SIGSEGV.
FAIL: gdb.base/exitsignal.exp: \$_exitsignal is 11 (SIGSEGV) after restarting the inferior
FAIL: gdb.base/exitsignal.exp: program terminated with SIGSEGV
FAIL: gdb.base/exitsignal.exp: trigger SIGSEGV
FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=off: follow_fork_mode=child: detach_on_fork=off: run (the program exited)
FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=off: follow_fork_mode=child: detach_on_fork=on: run (the program exited)
FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=off: follow_fork_mode=parent: detach_on_fork=off: run (the program exited)
FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=off: follow_fork_mode=parent: detach_on_fork=on: run (the program exited)
FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=on: follow_fork_mode=child: detach_on_fork=off: run (the program exited)
FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=on: follow_fork_mode=child: detach_on_fork=on: run (the program exited)
FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=on: follow_fork_mode=parent: detach_on_fork=off: run (the program exited)
FAIL: gdb.base/fork-print-inferior-events.exp: print_inferior_events=on: follow_fork_mode=parent: detach_on_fork=on: run (the program exited)
FAIL: gdb.base/func-ptrs.exp: stop in sentinel
FAIL: gdb.base/gcore.exp: capture_command_output for print array_func::local_array
FAIL: gdb.base/gcore.exp: corefile restored all registers
FAIL: gdb.base/gcore.exp: corefile restored backtrace
FAIL: gdb.base/gcore.exp: corefile restored general registers
FAIL: gdb.base/gcore.exp: corefile restored stack array
FAIL: gdb.base/gcore.exp: where in corefile (pattern 1)
ERROR: : spawn id exp9 not open
ERROR: Could not resync from internal error (timeout)
UNRESOLVED: gdb.base/gdb-sigterm.exp: 50 SIGTERM passes
FAIL: gdb.base/gdb-sigterm.exp: expect eof #0 (GDB internal error)
FAIL: gdb.base/gnu-debugdata.exp: strip
ERROR: (/vol/obj/gnu/gdb/gdb/11.5-amd64-local/gdb/testsuite/outputs/gdb.base/gnu-ifunc/gnu-ifunc-1-0-0) No such file or directory
ERROR: error copying "/vol/obj/gnu/gdb/gdb/11.5-amd64-local/gdb/testsuite/outputs/gdb.base/gnu-ifunc/gnu-ifunc-lib-1-0-0.so": no such file or directory
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=0: continue to break-at-nextcall
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=0: continue to breakpoint: nextcall gnu_ifunc
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=0: nextcall gnu_ifunc skipped
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=0: p gnu_ifunc executing (GDB internal error)
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=0: set-break: resolve: continue to breakpoint: break-at-exit
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=0: step
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=1: continue to break-at-nextcall
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=1: continue to breakpoint: nextcall gnu_ifunc
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=1: nextcall gnu_ifunc skipped
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=1: p gnu_ifunc executing (GDB internal error)
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=1: set-break: resolve: continue to breakpoint: break-at-exit
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=0: final_debug=1: step
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=0: continue to break-at-nextcall
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=0: continue to breakpoint: nextcall gnu_ifunc
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=0: nextcall gnu_ifunc skipped
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=0: p gnu_ifunc executing (GDB internal error)
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=0: set-break: resolve: continue to breakpoint: break-at-exit
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=0: step
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=1: continue to break-at-nextcall
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=1: continue to breakpoint: nextcall gnu_ifunc
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=1: nextcall gnu_ifunc skipped
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=1: p gnu_ifunc executing (GDB internal error)
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=1: set-break: resolve: continue to breakpoint: break-at-exit
FAIL: gdb.base/gnu-ifunc.exp: resolver_attr=0: resolver_debug=1: final_debug=1: step
ERROR: tcl error sourcing /vol/src/gnu/gdb/hg/master/local/gdb/testsuite/gdb.base/gnu-ifunc.exp.
FAIL: gdb.base/hbreak.exp: continue to break-at-exit after hbreak (the program exited)
FAIL: gdb.base/hbreak.exp: hbreak
FAIL: gdb.base/hook-stop.exp: hook-stop runs before frame print: run hook-stop
FAIL: gdb.base/hook-stop.exp: hook-stop runs continue&: inferior exits normally (timeout)
FAIL: gdb.base/hook-stop.exp: hook-stop runs continue&: info threads
FAIL: gdb.base/infcall-exec.exp: call execlp
FAIL: gdb.base/interrupt-daemon.exp: can't run to daemon_main function
FAIL: gdb.base/interrupt.exp: Send Control-C, second time
FAIL: gdb.base/interrupt.exp: call function when asleep (stays asleep)
FAIL: gdb.base/interrupt.exp: send_gdb control C
FAIL: gdb.base/kill-after-signal.exp: continue
FAIL: gdb.base/kill-after-signal.exp: stepi
ERROR: Process no longer exists
UNRESOLVED: gdb.base/libsegfault.exp: gdb emits custom handler warning
FAIL: gdb.base/memattr.exp: delete mem 1
FAIL: gdb.base/memattr.exp: delete mem 2 4
FAIL: gdb.base/memattr.exp: delete mem 2-4
FAIL: gdb.base/memattr.exp: delete non-existant region
FAIL: gdb.base/memattr.exp: disable mem
FAIL: gdb.base/memattr.exp: disable mem 1
FAIL: gdb.base/memattr.exp: disable mem 2 4
FAIL: gdb.base/memattr.exp: disable non-existant regions
FAIL: gdb.base/memattr.exp: enable mem
FAIL: gdb.base/memattr.exp: enable mem 1
FAIL: gdb.base/memattr.exp: enable mem 2-4
FAIL: gdb.base/memattr.exp: mem1 can be written
FAIL: gdb.base/memattr.exp: mem2 can be read
FAIL: gdb.base/memattr.exp: mem2 cannot be written
FAIL: gdb.base/multi-line-starts-subshell.exp: shell input works (timeout)
FAIL: gdb.base/paginate-bg-execution.exp: cancel with ctrl-c: continue&
FAIL: gdb.base/paginate-bg-execution.exp: cancel with ctrl-c: continue& paginates (timeout)
FAIL: gdb.base/paginate-bg-execution.exp: cancel with quit: cancel pagination (got interactive prompt)
FAIL: gdb.base/paginate-bg-execution.exp: cancel with quit: continue&
FAIL: gdb.base/paginate-bg-execution.exp: cancel with quit: continue& paginates (timeout)
FAIL: gdb.base/paginate-bg-execution.exp: paginate: continue&
FAIL: gdb.base/paginate-bg-execution.exp: paginate: pagination handled, breakpoint hit (timeout)
FAIL: gdb.base/pr11022.exp: set watchpoint
FAIL: gdb.base/pr11022.exp: watchpoint hit
FAIL: gdb.base/pr11022.exp: watchpoint hit 2
FAIL: gdb.base/prelink.exp: ldd prelinkt output contains libs
FAIL: gdb.base/prelink.exp: split debug of executable
FAIL: gdb.base/prelink.exp: unprelink ld.so.1 pre-unprelink (missing /usr/sbin/prelink) ( is already prelinked)
FAIL: gdb.base/print-symbol-loading.exp: core brief: library got loaded
FAIL: gdb.base/print-symbol-loading.exp: core full: library got loaded
FAIL: gdb.base/print-symbol-loading.exp: core off: library got loaded
FAIL: gdb.base/print-symbol-loading.exp: shlib brief: continue to breakpoint: lib (GDB internal error)
FAIL: gdb.base/print-symbol-loading.exp: shlib brief: library got loaded
FAIL: gdb.base/print-symbol-loading.exp: shlib brief: load shared-lib
FAIL: gdb.base/print-symbol-loading.exp: shlib full: continue to breakpoint: lib (GDB internal error)
FAIL: gdb.base/print-symbol-loading.exp: shlib full: library got loaded
FAIL: gdb.base/print-symbol-loading.exp: shlib off: continue to breakpoint: lib (GDB internal error)
FAIL: gdb.base/print-symbol-loading.exp: shlib off: library got loaded
FAIL: gdb.base/print-symbol-loading.exp: shlib off: load shared-lib
FAIL: gdb.base/printcmds.exp: p &ctable1[16*8]
FAIL: gdb.base/printcmds.exp: p &ctable1[17*8]
FAIL: gdb.base/printcmds.exp: p &ctable1[18*8]
FAIL: gdb.base/printcmds.exp: p ctable1[135]
FAIL: gdb.base/printcmds.exp: p ctable1[136]
FAIL: gdb.base/printcmds.exp: p ctable1[137]
FAIL: gdb.base/printcmds.exp: p ctable1[140]
FAIL: gdb.base/printcmds.exp: p ctable1[148]
FAIL: gdb.base/printcmds.exp: set target-charset ASCII
FAIL: gdb.base/printcmds.exp: set target-charset ASCII
FAIL: gdb.base/printcmds.exp: set target-charset ASCII
FAIL: gdb.base/printcmds.exp: set target-charset ISO-8859-1
FAIL: gdb.base/printcmds.exp: set target-charset ISO-8859-1
FAIL: gdb.base/printcmds.exp: set target-charset ISO-8859-1
FAIL: gdb.base/quit-live.exp: appear_how=attach-nofile: extra_inferior=0: quit_how=quit: attach
FAIL: gdb.base/quit-live.exp: appear_how=attach-nofile: extra_inferior=0: quit_how=sighup: attach
FAIL: gdb.base/quit-live.exp: appear_how=attach-nofile: extra_inferior=0: quit_how=sigterm: attach
FAIL: gdb.base/quit-live.exp: appear_how=attach-nofile: extra_inferior=1: quit_how=quit: attach
FAIL: gdb.base/quit-live.exp: appear_how=attach-nofile: extra_inferior=1: quit_how=sighup: attach
FAIL: gdb.base/quit-live.exp: appear_how=attach-nofile: extra_inferior=1: quit_how=sigterm: attach
FAIL: gdb.base/random-signal.exp: attach: stop with control-c (timeout)
FAIL: gdb.base/random-signal.exp: run: stop with control-c (timeout)
FAIL: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 1
FAIL: gdb.base/readline.exp: Simple operate-and-get-next - C-o for p 7
FAIL: gdb.base/readline.exp: operate-and-get-next with secondary prompt - send end
FAIL: gdb.base/readline.exp: print 42
FAIL: gdb.base/restore.exp: caller3 calls callee1; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller3 calls callee2; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller3 calls callee3; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller3 calls callee4; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller3 calls callee5; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller4 calls callee1; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller4 calls callee1; return restored l2 to 32493
FAIL: gdb.base/restore.exp: caller4 calls callee2; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller4 calls callee2; return restored l2 to 32493
FAIL: gdb.base/restore.exp: caller4 calls callee3; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller4 calls callee3; return restored l2 to 32493
FAIL: gdb.base/restore.exp: caller4 calls callee4; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller4 calls callee4; return restored l2 to 32493
FAIL: gdb.base/restore.exp: caller4 calls callee5; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller4 calls callee5; return restored l2 to 32493
FAIL: gdb.base/restore.exp: caller5 calls callee1; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller5 calls callee1; return restored l2 to 32493
FAIL: gdb.base/restore.exp: caller5 calls callee1; return restored l3 to 32494
FAIL: gdb.base/restore.exp: caller5 calls callee2; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller5 calls callee2; return restored l2 to 32493
FAIL: gdb.base/restore.exp: caller5 calls callee2; return restored l3 to 32494
FAIL: gdb.base/restore.exp: caller5 calls callee3; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller5 calls callee3; return restored l2 to 32493
FAIL: gdb.base/restore.exp: caller5 calls callee3; return restored l3 to 32494
FAIL: gdb.base/restore.exp: caller5 calls callee4; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller5 calls callee4; return restored l2 to 32493
FAIL: gdb.base/restore.exp: caller5 calls callee4; return restored l3 to 32494
FAIL: gdb.base/restore.exp: caller5 calls callee5; return restored l1 to 32492
FAIL: gdb.base/restore.exp: caller5 calls callee5; return restored l2 to 32493
FAIL: gdb.base/restore.exp: caller5 calls callee5; return restored l3 to 32494
FAIL: gdb.base/savedregs.exp: Check main info frame; stack contains callee caller dummy catcher sigtramp thrower main
FAIL: gdb.base/savedregs.exp: Check main info frame; stack contains caller dummy catcher sigtramp thrower main
FAIL: gdb.base/savedregs.exp: Check main info frame; stack contains catcher sigtramp thrower main
FAIL: gdb.base/savedregs.exp: get thrower info frame
FAIL: gdb.base/setvar.exp: set target-charset ASCII
FAIL: gdb.base/setvar.exp: set target-charset ASCII
FAIL: gdb.base/setvar.exp: set target-charset ASCII
FAIL: gdb.base/setvar.exp: set target-charset ISO-8859-1
FAIL: gdb.base/setvar.exp: set target-charset ISO-8859-1
FAIL: gdb.base/setvar.exp: set target-charset ISO-8859-1
FAIL: gdb.base/shlib-call.exp: next over shr1 (timeout)
FAIL: gdb.base/shlib-call.exp: print shr1(1) (timeout)
FAIL: gdb.base/shlib-call.exp: print shr1(1) 2nd time (timeout)
FAIL: gdb.base/shlib-call.exp: print shr1(g) (timeout)
FAIL: gdb.base/sigall.exp: get signal ABRT
FAIL: gdb.base/sigall.exp: get signal ALRM
FAIL: gdb.base/sigall.exp: get signal BUS
FAIL: gdb.base/sigall.exp: get signal CHLD
FAIL: gdb.base/sigall.exp: get signal CONT
FAIL: gdb.base/sigall.exp: get signal EMT
FAIL: gdb.base/sigall.exp: get signal FPE
FAIL: gdb.base/sigall.exp: get signal HUP
FAIL: gdb.base/sigall.exp: get signal ILL
FAIL: gdb.base/sigall.exp: get signal IO
FAIL: gdb.base/sigall.exp: get signal LOST
FAIL: gdb.base/sigall.exp: get signal LWP
FAIL: gdb.base/sigall.exp: get signal PIPE
FAIL: gdb.base/sigall.exp: get signal PROF
FAIL: gdb.base/sigall.exp: get signal PWR
FAIL: gdb.base/sigall.exp: get signal QUIT
FAIL: gdb.base/sigall.exp: get signal SEGV
FAIL: gdb.base/sigall.exp: get signal SYS
FAIL: gdb.base/sigall.exp: get signal TERM
FAIL: gdb.base/sigall.exp: get signal TSTP
FAIL: gdb.base/sigall.exp: get signal TTIN
FAIL: gdb.base/sigall.exp: get signal TTOU
FAIL: gdb.base/sigall.exp: get signal URG
FAIL: gdb.base/sigall.exp: get signal USR1
FAIL: gdb.base/sigall.exp: get signal USR2
FAIL: gdb.base/sigall.exp: get signal VTALRM
FAIL: gdb.base/sigall.exp: get signal WAITING
FAIL: gdb.base/sigall.exp: get signal WINCH
FAIL: gdb.base/sigall.exp: get signal XCPU
FAIL: gdb.base/sigall.exp: get signal XFSZ
FAIL: gdb.base/sigaltstack.exp: backtrace (pattern 2)
FAIL: gdb.base/sigaltstack.exp: finish from catch INNER (the program is no longer running)
FAIL: gdb.base/sigaltstack.exp: finish from catch LEAF
FAIL: gdb.base/sigaltstack.exp: finish to MAIN (the program is no longer running)
FAIL: gdb.base/sigaltstack.exp: finish to OUTER (the program is no longer running)
FAIL: gdb.base/sigaltstack.exp: finish to catch INNER (the program exited)
FAIL: gdb.base/sigaltstack.exp: finish to catch MAIN (the program is no longer running)
FAIL: gdb.base/sigaltstack.exp: finish to throw INNER
FAIL: gdb.base/sigbpt.exp: cont bp after segv; stepi fault
FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; clear breakpoint 2 of 3
FAIL: gdb.base/sigbpt.exp: cont bp before and after segv; stepi fault
FAIL: gdb.base/sigbpt.exp: cont; stepi fault
FAIL: gdb.base/sigbpt.exp: get insn after fault
FAIL: gdb.base/sigbpt.exp: stepi bp at segv; stepi out of handler
FAIL: gdb.base/sigbpt.exp: stepi bp before and at segv; stepi out of handler
FAIL: gdb.base/sigbpt.exp: stepi bp before segv; stepi out of handler
FAIL: gdb.base/sigbpt.exp: stepi; stepi out of handler
FAIL: gdb.base/sigbpt.exp: stepping to fault
FAIL: gdb.base/sigbpt.exp: verify that SIGSEGV occurs at the last STEPI insn (none 0x8050cb3)
FAIL: gdb.base/siginfo-addr.exp: continue to signal
FAIL: gdb.base/siginfo-addr.exp: correct si_addr (the program exited)
FAIL: gdb.base/siginfo-infcall.exp: continue to SIGUSR1
FAIL: gdb.base/siginfo-infcall.exp: continue to the handler
FAIL: gdb.base/siginfo.exp: backtrace for nexti (pattern 2)
FAIL: gdb.base/siginfo.exp: step out of handler
FAIL: gdb.base/signals.exp: backtrace for SIGUSR1
FAIL: gdb.base/signals.exp: backtrace from handler when calling func1
FAIL: gdb.base/signest.exp: continue to fault
FAIL: gdb.base/signest.exp: run through nested faults (the program exited)
FAIL: gdb.base/signull.exp: code; backtrace from keeper through SIGSEGV
FAIL: gdb.base/signull.exp: code; take the SIGSEGV
FAIL: gdb.base/signull.exp: data read; backtrace from keeper through SIGSEGV
FAIL: gdb.base/signull.exp: data read; take the SIGSEGV
FAIL: gdb.base/signull.exp: data write; backtrace from keeper through SIGSEGV
FAIL: gdb.base/signull.exp: data write; take the SIGSEGV
FAIL: gdb.base/signull.exp: probe function pointer
FAIL: gdb.base/sigrepeat.exp: next (timeout)
FAIL: gdb.base/sigstep.exp: continue to handler, nothing in handler, next from handler: leave handler
FAIL: gdb.base/sigstep.exp: continue to handler, nothing in handler, step from handler: leave handler
FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, next from handler: leave handler
FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, step from handler: leave handler
FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, skip handler, with sw-watchpoint: performing continue (timeout)
FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, to handler entry: backtrace (pattern 2)
FAIL: gdb.base/sigstep.exp: displaced=off: continue on breakpoint, to handler: backtrace (pattern 2)
FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler, with sw-watchpoint: performing next (timeout)
FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, skip handler: performing next (timeout)
FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, to handler entry: backtrace (pattern 1) (timeout)
FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, to handler entry: performing next (timeout)
FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, to handler: backtrace (pattern 1) (timeout)
FAIL: gdb.base/sigstep.exp: displaced=off: next on breakpoint, to handler: performing next (timeout)
FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler, with sw-watchpoint: performing step (timeout)
FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, skip handler: performing step (timeout)
FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, to handler entry: backtrace (pattern 1) (timeout)
FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, to handler entry: performing step (timeout)
FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, to handler: backtrace (pattern 1) (timeout)
FAIL: gdb.base/sigstep.exp: displaced=off: step on breakpoint, to handler: performing step (timeout)
FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, skip handler, with sw-watchpoint: performing continue (timeout)
FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, to handler entry: backtrace (pattern 2)
FAIL: gdb.base/sigstep.exp: displaced=on: continue on breakpoint, to handler: backtrace (pattern 2)
FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler, with sw-watchpoint: performing next (timeout)
FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, skip handler: performing next (timeout)
FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, to handler entry: backtrace (pattern 1) (timeout)
FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, to handler entry: performing next (timeout)
FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, to handler: backtrace (pattern 1) (timeout)
FAIL: gdb.base/sigstep.exp: displaced=on: next on breakpoint, to handler: performing next (timeout)
FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler, with sw-watchpoint: performing step (timeout)
FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, skip handler: performing step (timeout)
FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, to handler entry: backtrace (pattern 1) (timeout)
FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, to handler entry: performing step (timeout)
FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, to handler: backtrace (pattern 1) (timeout)
FAIL: gdb.base/sigstep.exp: displaced=on: step on breakpoint, to handler: performing step (timeout)
FAIL: gdb.base/sigstep.exp: finish from handleri: leave handler
FAIL: gdb.base/sigstep.exp: finish from handleri: leave signal trampoline
FAIL: gdb.base/sigstep.exp: next over handler: performing next (timeout)
FAIL: gdb.base/sigstep.exp: next to handler entry: performing next (timeout)
FAIL: gdb.base/sigstep.exp: next to handler, nothing in handler, continue from handler: continue to signal
FAIL: gdb.base/sigstep.exp: next to handler, nothing in handler, next from handler: continue to signal
FAIL: gdb.base/sigstep.exp: next to handler, nothing in handler, step from handler: continue to signal
FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, continue from handler: continue to signal
FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, next from handler: continue to signal
FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, next from handler: leave handler
FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, step from handler: continue to signal
FAIL: gdb.base/sigstep.exp: next to handler, si+advance in handler, step from handler: leave handler
FAIL: gdb.base/sigstep.exp: next to handler: performing next (timeout)
FAIL: gdb.base/sigstep.exp: nexti from handleri: leave handler
FAIL: gdb.base/sigstep.exp: nexti from handleri: leave signal trampoline
FAIL: gdb.base/sigstep.exp: nexti to handler entry: performing nexti
FAIL: gdb.base/sigstep.exp: nexti to handler, nothing in handler, continue from handler: continue to signal
FAIL: gdb.base/sigstep.exp: nexti to handler, nothing in handler, next from handler: continue to signal
FAIL: gdb.base/sigstep.exp: nexti to handler, nothing in handler, next from handler: leave handler
FAIL: gdb.base/sigstep.exp: nexti to handler, nothing in handler, step from handler: continue to signal
FAIL: gdb.base/sigstep.exp: nexti to handler, nothing in handler, step from handler: leave handler
FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, continue from handler: continue to signal
FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, next from handler: continue to signal
FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, next from handler: leave handler
FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, step from handler: continue to signal
FAIL: gdb.base/sigstep.exp: nexti to handler, si+advance in handler, step from handler: leave handler
FAIL: gdb.base/sigstep.exp: return from handleri: leave handler
FAIL: gdb.base/sigstep.exp: return from handleri: leave signal trampoline
FAIL: gdb.base/sigstep.exp: step over handler: performing step (timeout)
FAIL: gdb.base/sigstep.exp: step to handler entry: performing step (timeout)
FAIL: gdb.base/sigstep.exp: step to handler, nothing in handler, continue from handler: continue to signal
FAIL: gdb.base/sigstep.exp: step to handler, nothing in handler, next from handler: continue to signal
FAIL: gdb.base/sigstep.exp: step to handler, nothing in handler, step from handler: continue to signal
FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, continue from handler: continue to signal
FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, next from handler: continue to signal
FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, next from handler: leave handler
FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, step from handler: continue to signal
FAIL: gdb.base/sigstep.exp: step to handler, si+advance in handler, step from handler: leave handler
FAIL: gdb.base/sigstep.exp: step to handler: performing step (timeout)
FAIL: gdb.base/sigstep.exp: stepi from handleri: leave handler
FAIL: gdb.base/sigstep.exp: stepi from handleri: leave signal trampoline
FAIL: gdb.base/sigstep.exp: stepi to handler entry: performing stepi
FAIL: gdb.base/sigstep.exp: stepi to handler, nothing in handler, continue from handler: continue to signal
FAIL: gdb.base/sigstep.exp: stepi to handler, nothing in handler, next from handler: continue to signal
FAIL: gdb.base/sigstep.exp: stepi to handler, nothing in handler, next from handler: leave handler
FAIL: gdb.base/sigstep.exp: stepi to handler, nothing in handler, step from handler: continue to signal
FAIL: gdb.base/sigstep.exp: stepi to handler, nothing in handler, step from handler: leave handler
FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, continue from handler: continue to signal
FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, next from handler: continue to signal
FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, next from handler: leave handler
FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, step from handler: continue to signal
FAIL: gdb.base/sigstep.exp: stepi to handler, si+advance in handler, step from handler: leave handler
FAIL: gdb.base/sigstep.exp: validate backtrace: backtrace for nexti (pattern 2)
FAIL: gdb.base/skip.exp: step after disabling 3: step 3
FAIL: gdb.base/skip.exp: step after disabling 3: step 5
FAIL: gdb.base/skip.exp: step using -fu for baz: step 3
FAIL: gdb.base/skip.exp: step using -fu for baz: step 5
FAIL: gdb.base/skip.exp: step using -rfu for baz: step 3
FAIL: gdb.base/skip.exp: step using -rfu for baz: step 5
FAIL: gdb.base/step-symless.exp: step
FAIL: gdb.base/store.exp: upvar charest l; print old r, expecting -2 .*
FAIL: gdb.base/store.exp: upvar double l; print new l, expecting 4
FAIL: gdb.base/store.exp: upvar double l; print old l, expecting -1
FAIL: gdb.base/store.exp: upvar double l; print old r, expecting -2
FAIL: gdb.base/store.exp: upvar double l; set l to 4
FAIL: gdb.base/store.exp: upvar doublest l; print new l, expecting 4
FAIL: gdb.base/store.exp: upvar doublest l; print old l, expecting -1
FAIL: gdb.base/store.exp: upvar doublest l; print old r, expecting -2
FAIL: gdb.base/store.exp: upvar doublest l; set l to 4
FAIL: gdb.base/store.exp: upvar float l; print new l, expecting 4
FAIL: gdb.base/store.exp: upvar float l; print old l, expecting -1
FAIL: gdb.base/store.exp: upvar float l; print old r, expecting -2
FAIL: gdb.base/store.exp: upvar float l; set l to 4
FAIL: gdb.base/store.exp: upvar longest l; print old r, expecting -2
FAIL: gdb.base/store.exp: var charest l; print old r, expecting -2 .*
FAIL: gdb.base/store.exp: var double l; print incremented l, expecting 2
FAIL: gdb.base/store.exp: var double l; print new l, expecting 4
FAIL: gdb.base/store.exp: var double l; print old l, expecting -1
FAIL: gdb.base/store.exp: var double l; print old r, expecting -2
FAIL: gdb.base/store.exp: var double l; setting l to 4
FAIL: gdb.base/store.exp: var doublest l; print incremented l, expecting 2
FAIL: gdb.base/store.exp: var doublest l; print new l, expecting 4
FAIL: gdb.base/store.exp: var doublest l; print old l, expecting -1
FAIL: gdb.base/store.exp: var doublest l; print old r, expecting -2
FAIL: gdb.base/store.exp: var doublest l; setting l to 4
FAIL: gdb.base/store.exp: var float l; print incremented l, expecting 2
FAIL: gdb.base/store.exp: var float l; print new l, expecting 4
FAIL: gdb.base/store.exp: var float l; print old l, expecting -1
FAIL: gdb.base/store.exp: var float l; print old r, expecting -2
FAIL: gdb.base/store.exp: var float l; setting l to 4
FAIL: gdb.base/store.exp: var longest l; print old r, expecting -2
ERROR: Undefined command "break função2".
UNRESOLVED: gdb.base/utf8-identifiers.exp: break função2
FAIL: gdb.base/utf8-identifiers.exp: continue
FAIL: gdb.base/utf8-identifiers.exp: info breakpoints
FAIL: gdb.base/utf8-identifiers.exp: print g_s.num_€
FAIL: gdb.base/utf8-identifiers.exp: print num_€
FAIL: gdb.base/utf8-identifiers.exp: tab complete "break my_fun" (timeout)
FAIL: gdb.base/utf8-identifiers.exp: tab complete "print g_s.num" (timeout)
FAIL: gdb.base/vdso-warning.exp: core: startup
FAIL: gdb.base/watch-read.exp: only read watchpoint triggers when value doesn't change (timeout)
FAIL: gdb.base/watch-read.exp: only write watchpoint triggers when value changes (timeout)
FAIL: gdb.base/watch-read.exp: read watchpoint triggers on first read (timeout)
FAIL: gdb.base/watch-read.exp: read watchpoint triggers on read after value changed (timeout)
FAIL: gdb.base/watch-read.exp: read watchpoint triggers when value doesn't change, trapping reads and writes (timeout)
FAIL: gdb.base/watch-read.exp: set hardware read watchpoint on global variable
FAIL: gdb.base/watch-read.exp: set write watchpoint on global variable (timeout)
FAIL: gdb.base/watch-read.exp: write watchpoint triggers (timeout)
FAIL: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 1
FAIL: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 2 (timeout)
FAIL: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 3 (timeout)
FAIL: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 4 (timeout)
FAIL: gdb.base/watch_thread_num.exp: Check thread that triggered iteration 5 (timeout)
FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 1
FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 2 (timeout)
FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 3 (timeout)
FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 4 (timeout)
FAIL: gdb.base/watch_thread_num.exp: Watchpoint triggered iteration 5 (timeout)
FAIL: gdb.base/watch_thread_num.exp: info breakpoint shows watchpoint is thread-specific
FAIL: gdb.base/watch_thread_num.exp: watchpoint on shared variable
FAIL: gdb.base/watchpoint-hw-attach.exp: attach
FAIL: gdb.base/watchpoint-hw-attach.exp: continue
FAIL: gdb.base/watchpoint-hw-attach.exp: watch watched_variable
FAIL: gdb.base/watchpoint-hw-hit-once.exp: continue
FAIL: gdb.base/watchpoint-hw-hit-once.exp: continue to break-at-exit (the program exited)
FAIL: gdb.base/watchpoint-hw.exp: info watchpoints (timeout)
FAIL: gdb.base/watchpoint-hw.exp: start (timeout)
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 1, iter 0: base + 0: stepi advanced
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 1, iter 0: base + 0: watch *(buf.byte + 0 + 0)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 1, iter 0: base + 1: watch *(buf.byte + 0 + 1)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 1, iter 1: base + 0: watch *(buf.byte + 1 + 0)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 1, iter 1: base + 1: watch *(buf.byte + 1 + 1)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 1, iter 2: base + 0: watch *(buf.byte + 2 + 0)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 1, iter 2: base + 1: watch *(buf.byte + 2 + 1)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 1, iter 3: base + 0: watch *(buf.byte + 3 + 0)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 1, iter 3: base + 1: watch *(buf.byte + 3 + 1)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 2, iter 0: base + 0: watch *(buf.byte + 0 + 0)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 2, iter 0: base + 1: watch *(buf.byte + 0 + 1)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 2, iter 1: base + 0: watch *(buf.byte + 1 + 0)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 2, iter 1: base + 1: watch *(buf.byte + 1 + 1)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 2, iter 2: base + 0: watch *(buf.byte + 2 + 0)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 2, iter 2: base + 1: watch *(buf.byte + 2 + 1)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 2, iter 3: base + 0: watch *(buf.byte + 3 + 0)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 2, iter 3: base + 1: watch *(buf.byte + 3 + 1)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 3, iter 0: base + 0: watch *(buf.byte + 0 + 0)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 3, iter 0: base + 1: watch *(buf.byte + 0 + 1)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 3, iter 1: base + 0: watch *(buf.byte + 1 + 0)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 3, iter 1: base + 1: watch *(buf.byte + 1 + 1)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 3, iter 2: base + 0: watch *(buf.byte + 2 + 0)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 3, iter 2: base + 1: watch *(buf.byte + 2 + 1)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 3, iter 3: base + 0: watch *(buf.byte + 3 + 0)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted off: watch x watch: : width 3, iter 3: base + 1: watch *(buf.byte + 3 + 1)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 1, iter 0: base + 0: watch *(buf.byte + 0 + 0)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 1, iter 0: base + 1: watch *(buf.byte + 0 + 1)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 1, iter 1: base + 0: watch *(buf.byte + 1 + 0)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 1, iter 1: base + 1: watch *(buf.byte + 1 + 1)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 1, iter 2: base + 0: watch *(buf.byte + 2 + 0)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 1, iter 2: base + 1: watch *(buf.byte + 2 + 1)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 1, iter 3: base + 0: watch *(buf.byte + 3 + 0)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 1, iter 3: base + 1: watch *(buf.byte + 3 + 1)@1
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 2, iter 0: base + 0: watch *(buf.byte + 0 + 0)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 2, iter 0: base + 1: watch *(buf.byte + 0 + 1)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 2, iter 1: base + 0: watch *(buf.byte + 1 + 0)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 2, iter 1: base + 1: watch *(buf.byte + 1 + 1)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 2, iter 2: base + 0: watch *(buf.byte + 2 + 0)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 2, iter 2: base + 1: watch *(buf.byte + 2 + 1)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 2, iter 3: base + 0: watch *(buf.byte + 3 + 0)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 2, iter 3: base + 1: watch *(buf.byte + 3 + 1)@2
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 3, iter 0: base + 0: watch *(buf.byte + 0 + 0)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 3, iter 0: base + 1: watch *(buf.byte + 0 + 1)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 3, iter 1: base + 0: watch *(buf.byte + 1 + 0)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 3, iter 1: base + 1: watch *(buf.byte + 1 + 1)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 3, iter 2: base + 0: watch *(buf.byte + 2 + 0)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 3, iter 2: base + 1: watch *(buf.byte + 2 + 1)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 3, iter 3: base + 0: watch *(buf.byte + 3 + 0)@3
FAIL: gdb.base/watchpoint-reuse-slot.exp: hw-watch: always-inserted on: watch x watch: : width 3, iter 3: base + 1: watch *(buf.byte + 3 + 1)@3
FAIL: gdb.base/watchpoint-stops-at-right-insn.exp: always-inserted off: hardware watchpoint triggers
FAIL: gdb.base/watchpoint-stops-at-right-insn.exp: always-inserted off: set hardware watchpoint on global variable
FAIL: gdb.base/watchpoint-stops-at-right-insn.exp: always-inserted on: hardware watchpoint triggers
FAIL: gdb.base/watchpoint-stops-at-right-insn.exp: always-inserted on: set hardware watchpoint on global variable
ERROR: can't read "wpoffset_to_wpnum(1)": no such element in array
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: delete  (got interactive prompt)
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[4]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[5]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[6]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size1[7]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[2]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size2[3]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size4[1]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: rwatch data.u.size8[0]
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=0) rd(size=1 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=0) rd(size=2 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=0) rd(size=4 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=0) rd(size=8 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=1) rd(size=1 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=1) rd(size=2 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=1) rd(size=4 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=1) rd(size=8 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=2) rd(size=1 offset=2) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=2) rd(size=2 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=2) rd(size=4 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=2) rd(size=8 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=3) rd(size=1 offset=3) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=3) rd(size=2 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=3) rd(size=4 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=3) rd(size=8 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=4) rd(size=1 offset=4) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=4) rd(size=2 offset=2) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=4) rd(size=4 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=4) rd(size=8 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=5) rd(size=1 offset=5) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=5) rd(size=2 offset=2) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=5) rd(size=4 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=5) rd(size=8 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=6) rd(size=1 offset=6) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=6) rd(size=2 offset=3) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=6) rd(size=4 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=6) rd(size=8 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=7) rd(size=1 offset=7) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=7) rd(size=2 offset=3) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=7) rd(size=4 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=1 offset=7) rd(size=8 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=0) rd(size=1 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=0) rd(size=1 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=0) rd(size=2 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=0) rd(size=4 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=0) rd(size=8 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=1) rd(size=1 offset=2) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=1) rd(size=1 offset=3) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=1) rd(size=2 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=1) rd(size=4 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=1) rd(size=8 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=2) rd(size=1 offset=4) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=2) rd(size=1 offset=5) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=2) rd(size=2 offset=2) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=2) rd(size=4 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=2) rd(size=8 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=3) rd(size=1 offset=6) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=3) rd(size=1 offset=7) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=3) rd(size=2 offset=3) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=3) rd(size=4 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=2 offset=3) rd(size=8 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=0) rd(size=1 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=0) rd(size=1 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=0) rd(size=1 offset=2) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=0) rd(size=1 offset=3) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=0) rd(size=2 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=0) rd(size=2 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=0) rd(size=4 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=0) rd(size=8 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=1) rd(size=1 offset=4) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=1) rd(size=1 offset=5) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=1) rd(size=1 offset=6) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=1) rd(size=1 offset=7) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=1) rd(size=2 offset=2) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=1) rd(size=2 offset=3) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=1) rd(size=4 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=4 offset=1) rd(size=8 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=1 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=1 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=1 offset=2) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=1 offset=3) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=1 offset=4) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=1 offset=5) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=1 offset=6) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=1 offset=7) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=2 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=2 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=2 offset=2) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=2 offset=3) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=4 offset=0) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=4 offset=1) expect=1
FAIL: gdb.base/watchpoint-unaligned.exp: wp(size=8 offset=0) rd(size=8 offset=0) expect=1
ERROR: tcl error sourcing /vol/src/gnu/gdb/hg/master/local/gdb/testsuite/gdb.base/watchpoint-unaligned.exp.
FAIL: gdb.base/watchpoint.exp: continue with watch foo2
FAIL: gdb.base/watchpoint.exp: continue with watch foo4
FAIL: gdb.base/watchpoint.exp: watch foo2
FAIL: gdb.base/watchpoint.exp: watch foo4
XPASS: gdb.cp/align.exp: print alignof(double)
XPASS: gdb.cp/align.exp: print alignof(long long)
XPASS: gdb.cp/align.exp: print alignof(t_double)
XPASS: gdb.cp/align.exp: print alignof(t_long_long)
XPASS: gdb.cp/align.exp: print alignof(t_unsigned_long_long)
XPASS: gdb.cp/align.exp: print alignof(typeof(item_double))
XPASS: gdb.cp/align.exp: print alignof(typeof(item_long_long))
XPASS: gdb.cp/align.exp: print alignof(typeof(item_unsigned_long_long))
XPASS: gdb.cp/align.exp: print alignof(unsigned long long)
FAIL: gdb.cp/breakpoint.exp: continue to C1::Nested::foo
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base1::a_function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base1::base1(int)
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base1::base1(void)
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base2::a_function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base2::base2
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::base(int)
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::base(void)
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator char*
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator delete
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator delete[]
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator fluff const* const*
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator fluff*
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator fluff**
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator int
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator new
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator new[]
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator!
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator!=
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator%
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator%=
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator&
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator&&
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator&=
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator()
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator*
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator*=
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator+
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator++
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator+=
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator-
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator--
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator-=
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator/
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator/=
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator<
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator<<
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator<<=
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator<=
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator=
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator==
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator>=
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator>>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator>>=
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator[]
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator^
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator^=
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator|
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator|=
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator||
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::operator~
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::overload(base&) const
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::overload(char*) const
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::overload(int) const
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::overload(long) const
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::overload(short) const
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::overload(void) const
FAIL: gdb.cp/cpexprs.exp: continue to test_function for base::~base
FAIL: gdb.cp/cpexprs.exp: continue to test_function for derived::a_function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for derived::derived
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, char, char>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, char, int>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, char, long>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, char, short>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, int, char>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, int, int>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, int, long>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, int, short>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, long, char>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, long, int>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, long, long>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, long, short>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, short, char>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, short, int>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, short, long>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, int, short, short>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, short, int, char>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, short, int, int>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, short, int, long>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, short, int, short>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<int, int, short, short, int>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<long, short, long, short, long>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for flubber<short, int, short, int, short>
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policy1::function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policy1::policy
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policy2::function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policy2::policy
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policy3::function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policy3::policy
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policy4::function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policy4::policy
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd1::function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd1::policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd1::~policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd2::function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd2::policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd2::~policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd3::function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd3::policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd3::~policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd4::function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd4::policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd4::~policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd5::function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd5::policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd5::~policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd<base, operation_1<base> >::function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd<base, operation_1<base> >::policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd<base, operation_1<base> >::~policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd<char, operation_1<char> >::function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd<char, operation_1<char> >::policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd<char, operation_1<char> >::~policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd<int, operation_1<int> >::function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd<int, operation_1<int> >::policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd<int, operation_1<int> >::~policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd<long, operation_1<long> >::policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd<long, operation_1<long> >::~policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd<tclass<int>, operation_1<tclass<int> > >::function
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd<tclass<int>, operation_1<tclass<int> > >::policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for policyd<tclass<int>, operation_1<tclass<int> > >::~policyd
FAIL: gdb.cp/cpexprs.exp: continue to test_function for tclass<base>::do_something
FAIL: gdb.cp/cpexprs.exp: continue to test_function for tclass<char>::do_something
FAIL: gdb.cp/cpexprs.exp: continue to test_function for tclass<int>::do_something
FAIL: gdb.cp/cpexprs.exp: continue to test_function for tclass<long>::do_something
FAIL: gdb.cp/cpexprs.exp: continue to test_function for tclass<short>::do_something
FAIL: gdb.cp/cpexprs.exp: list base::operator()
FAIL: gdb.cp/cpexprs.exp: print base::operator new
FAIL: gdb.cp/cpexprs.exp: print base::operator new[]
FAIL: gdb.cp/exception.exp: continue to first catch
FAIL: gdb.cp/exception.exp: continue to first throw
FAIL: gdb.cp/exception.exp: continue to second catch
FAIL: gdb.cp/exception.exp: continue to second throw
FAIL: gdb.cp/method.exp: continue to 21
FAIL: gdb.cp/method.exp: continue to A::bar
FAIL: gdb.cp/method.exp: continue to A::foo
FAIL: gdb.cp/no-dmgl-verbose.exp: setting breakpoint at 'f(std::string)'
FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : char
FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : double
FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : float
FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : int
FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : long_int
FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : short_int
FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : signed_char
FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_char
FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_int
FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_long_int
FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : unsigned_short_int
FAIL: gdb.cp/ovldbreak.exp: continue to bp overloaded : void
FAIL: gdb.cp/static-method.exp: continue
FAIL: gdb.cp/static-method.exp: continue
FAIL: gdb.cp/static-method.exp: continue
FAIL: gdb.cp/static-method.exp: continue
FAIL: gdb.cp/static-method.exp: continue to test_function for 'xxx::(anonymous namespace)::A::func'
FAIL: gdb.cp/static-method.exp: continue to test_function for 'xxx::(anonymous namespace)::func'
FAIL: gdb.cp/static-method.exp: continue to test_function for xxx::(anonymous namespace)::A::func
FAIL: gdb.cp/static-method.exp: continue to test_function for xxx::(anonymous namespace)::func
FAIL: gdb.cp/watch-cp.exp: continue
FAIL: gdb.cp/watch-cp.exp: info watchpoints
FAIL: gdb.cp/wide_char_types.exp: no program: c++: char16_t is unsigned
FAIL: gdb.cp/wide_char_types.exp: no program: c++: p L"hello"
FAIL: gdb.cp/wide_char_types.exp: no program: c++: p U"hello"
FAIL: gdb.cp/wide_char_types.exp: no program: c++: p u"hello"
FAIL: gdb.cp/wide_char_types.exp: with program: lang=c++11: char16_t is unsigned
FAIL: gdb.cp/wide_char_types.exp: with program: lang=c++11: p L"hello"
FAIL: gdb.cp/wide_char_types.exp: with program: lang=c++11: p U"hello"
FAIL: gdb.cp/wide_char_types.exp: with program: lang=c++11: p u"hello"
FAIL: gdb.cp/wide_char_types.exp: with program: lang=c: char16_t is unsigned
FAIL: gdb.cp/wide_char_types.exp: with program: lang=c: p L"hello"
FAIL: gdb.cp/wide_char_types.exp: with program: lang=c: p U"hello"
FAIL: gdb.cp/wide_char_types.exp: with program: lang=c: p u"hello"
FAIL: gdb.fortran/vla-history.exp: print vla1 filled (timeout)
FAIL: gdb.gdb/selftest.exp: backtrace through signal handler
FAIL: gdb.gdb/selftest.exp: printed version
FAIL: gdb.gdb/unittest.exp: maintenance selftest
FAIL: gdb.go/hello.exp: string after assignment check
FAIL: gdb.go/methods.exp: setting breakpoint at (*main.T).Bar
FAIL: gdb.mi/list-thread-groups-available.exp: list available thread groups (unexpected output)
FAIL: gdb.mi/list-thread-groups-available.exp: list available thread groups with filter (unexpected output)
FAIL: gdb.mi/mi-async-run.exp: expect interrupt (timeout)
FAIL: gdb.mi/mi-async-run.exp: send interrupt command (timeout)
FAIL: gdb.mi/mi-breakpoint-changed.exp: test_insert_delete_modify: catch syscall (unexpected output)
FAIL: gdb.mi/mi-breakpoint-changed.exp: test_insert_delete_modify: delete 6 (unexpected output)
FAIL: gdb.mi/mi-breakpoint-changed.exp: test_insert_delete_modify: dprintf marker, "arg" " (unexpected output)
FAIL: gdb.mi/mi-cli.exp: breakpoint hit produces CLI output
FAIL: gdb.mi/mi-dprintf.exp: fprintf: mi 1st dprintf (timeout)
FAIL: gdb.mi/mi-dprintf.exp: fprintf: mi 1st dprintf stop (timeout)
FAIL: gdb.mi/mi-dprintf.exp: fprintf: mi 2nd dprintf (timeout)
FAIL: gdb.mi/mi-dprintf.exp: fprintf: mi 2nd dprintf stop (timeout)
FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: next instruction in callee3 (unknown output after running)
FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: varobj var1 has changed (unexpected output)
FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: varobj var2 has changed (unexpected output)
FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: varobj var7 has not changed (unexpected output)
FAIL: gdb.mi/mi-frame-regs.exp: do_fixed_varobj_test: varobj var8 has not changed (unexpected output)
FAIL: gdb.mi/mi-memory-changed.exp: create objvar for C (unexpected output)
FAIL: gdb.mi/mi-pending.exp: run till MI pending breakpoint on pendfunc3 on thread 2 (timeout)
FAIL: gdb.mi/mi-syn-frame.exp: list stack frames (unexpected output)
FAIL: gdb.mi/mi-var-list-children-invalid-grandchild.exp: create variable object (unexpected output)
FAIL: gdb.mi/mi-var-list-children-invalid-grandchild.exp: list children #1 (unexpected output)
FAIL: gdb.mi/mi-var-list-children-invalid-grandchild.exp: list children #2 (unexpected output)
FAIL: gdb.mi/new-ui-mi-sync.exp: sync-command=continue: add-inferior (timeout)
FAIL: gdb.mi/new-ui-mi-sync.exp: sync-command=continue: got -thread-info output and thread is stopped (timeout)
FAIL: gdb.mi/new-ui-mi-sync.exp: sync-command=continue: got MI interrupt output (timeout)
FAIL: gdb.mi/new-ui-mi-sync.exp: sync-command=continue: interrupt on the CLI (timeout)
FAIL: gdb.mi/new-ui-mi-sync.exp: sync-command=run: add-inferior (timeout)
FAIL: gdb.mi/new-ui-mi-sync.exp: sync-command=run: got -thread-info output and thread is stopped (timeout)
FAIL: gdb.mi/new-ui-mi-sync.exp: sync-command=run: got MI interrupt output (timeout)
FAIL: gdb.mi/new-ui-mi-sync.exp: sync-command=run: interrupt on the CLI (timeout)
FAIL: gdb.mi/pr11022.exp: data-write-memory &x x 4 "01": watchpoint hit 2 (unknown output after running)
FAIL: gdb.mi/pr11022.exp: data-write-memory-bytes &x "01": watchpoint hit 2 (unknown output after running)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1 (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_inferior: reset selection to thread 1.1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: reset selection to thread 1.1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1 (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: reset selection to thread 1.1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: reset selection to thread 1.1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.2: frame without args
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.2: reset selection to thread 1.2
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.2: select frame 1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.2: select frame 1 again
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.2: select frame 1, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.3: frame without args
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.3: reset selection to thread 1.3
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.3: select frame 1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_frame: thread 1.3: select frame 1, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_inferior: CLI select inferior
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_inferior: CLI select inferior again
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_inferior: event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_inferior: event on MI again
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_inferior: reset selection to thread 1.1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_select_frame: thread 1.2: reset selection to thread 1.2
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_select_frame: thread 1.2: select frame 1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_select_frame: thread 1.2: select frame 1 again
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_select_frame: thread 1.2: select frame 1, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_select_frame: thread 1.3: reset selection to thread 1.3
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_select_frame: thread 1.3: select frame 1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_select_frame: thread 1.3: select frame 1, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: reset selection to thread 1.1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.2: select thread
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.2: select thread again
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.2: select thread, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.2: thread without args
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.3: select thread
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.3: select thread again
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.3: select thread, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_thread: thread 1.3: thread without args
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_up_down: frame down
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_up_down: frame down, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_up_down: frame up
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_up_down: frame up, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_cli_up_down: reset selection to thread 1.2
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_stack_select_frame: thread 1.2: reset selection to thread 1.2
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_stack_select_frame: thread 1.3: reset selection to thread 1.3
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: reset selection to thread 1.1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: thread 1.2 with --thread: -thread-select (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: thread 1.2: -thread-select (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: thread 1.2: -thread-select again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: thread 1.2: -thread-select, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: thread 1.3: -thread-select (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: thread 1.3: -thread-select again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_mi_thread_select: thread 1.3: -thread-select, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_setup: inferior 1: continue to breakpoint: continue thread 1.2 to infinite loop breakpoint (timeout)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_setup: inferior 1: continue to breakpoint: continue thread 1.3 to infinite loop breakpoint (the program is no longer running)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_setup: inferior 1: set scheduler-locking replay
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_setup: inferior 1: thread 1.2 stops MI (timeout)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_setup: inferior 1: thread 1.3 stops MI (timeout)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_setup: inferior 2: continue to breakpoint: continue thread 2.2 to infinite loop breakpoint (timeout)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_setup: inferior 2: continue to breakpoint: continue thread 2.3 to infinite loop breakpoint (the program is no longer running)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_setup: inferior 2: set breakpoint for thread 2.2
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_setup: inferior 2: set breakpoint in main
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_setup: inferior 2: set scheduler-locking off
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_setup: inferior 2: thread 2.2 stops MI (timeout)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_setup: inferior 2: thread 2.3 stops MI (timeout)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=all-stop: test_setup: main stop (timeout)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: frame without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1 again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: frame without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_frame: thread 1.3: select frame 1 (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: reset selection to thread 1.1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior again, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_inferior: select inferior, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: reset selection to thread 1.1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.2: thread without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=direct: test_cli_in_mi_thread: thread 1.3: thread without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: frame without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: reset selection to thread 1.2
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1 again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.2: select frame 1, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: frame without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: reset selection to thread 1.3
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_frame: thread 1.3: select frame 1 (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: reset selection to thread 1.1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior again, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_inferior: select inferior, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: reset selection to thread 1.1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: select thread, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.2: thread without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: select thread, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: exec_mode=interpreter-exec: test_cli_in_mi_thread: thread 1.3: thread without args (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: flush MI (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: frame without args
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: reset selection to thread 1.2
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1 again, event on MI, ensure no output MI (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.2: select frame 1, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: flush MI (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: reset selection to thread 1.3
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_frame: thread 1.3: select frame 1, event on MI, ensure no output MI (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: CLI select inferior again
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: event on MI again
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: flush MI (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_inferior: reset selection to thread 1.1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: reset selection to thread 1.2
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1 again
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.2: select frame 1, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: reset selection to thread 1.3
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_select_frame: thread 1.3: select frame 1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: reset selection to thread 1.1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread again
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: select thread, event on MI again, ensure no output MI (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.2: thread without args
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread again
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: select thread, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_thread: thread 1.3: thread without args
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame down, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: frame up, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_cli_up_down: reset selection to thread 1.2
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: -stack-select-frame, event on MI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.2: reset selection to thread 1.2
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: -stack-select-frame (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_stack_select_frame: thread 1.3: reset selection to thread 1.3
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: reset selection to thread 1.1
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2 with --thread: -thread-select (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.2: -thread-select, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select again (unexpected output)
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_mi_thread_select: thread 1.3: -thread-select, event on CLI
FAIL: gdb.mi/user-selected-context-sync.exp: mode=non-stop: test_setup: can't run to main
FAIL: gdb.multi/dummy-frame-restore.exp: can't run to f2
FAIL: gdb.multi/multi-attach.exp: attach to program 1
FAIL: gdb.multi/multi-attach.exp: attach to program 2
ERROR: can not find channel named ""
ERROR: can not find channel named ""
ERROR: can not find channel named ""
ERROR: can not find channel named ""
ERROR: can not find channel named ""
ERROR: can not find channel named ""
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: attach
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: attach
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: continue (timeout)
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=attach: stop with control-c (timeout)
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=run: attach
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=run: continue
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=run: run to main
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=run: stop with control-c
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=tty: attach
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=tty: continue (timeout)
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=tty: info inferiors (timeout)
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=attach: inf2_how=tty: stop with control-c (timeout)
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=attach: attach
UNRESOLVED: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=attach: stop with control-c
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=run: run to main
UNRESOLVED: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=run: stop with control-c
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=tty: run to main
UNRESOLVED: gdb.multi/multi-term-settings.exp: inf1_how=run: inf2_how=tty: stop with control-c
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=attach: attach
UNRESOLVED: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=attach: stop with control-c (the program is no longer running)
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=run: run to main
UNRESOLVED: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=run: stop with control-c
FAIL: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=tty: run to main
UNRESOLVED: gdb.multi/multi-term-settings.exp: inf1_how=tty: inf2_how=tty: stop with control-c
WARNING: remote_expect statement without a default case
WARNING: remote_expect statement without a default case
WARNING: remote_expect statement without a default case
WARNING: remote_expect statement without a default case
WARNING: remote_expect statement without a default case
WARNING: remote_expect statement without a default case
FAIL: gdb.multi/tids.exp: back to one inferior: info threads
FAIL: gdb.multi/tids.exp: python: make breakpoint thread-specific with python
FAIL: gdb.multi/tids.exp: python: test InferiorThread.global_num
FAIL: gdb.multi/tids.exp: python: test InferiorThread.num
FAIL: gdb.multi/tids.exp: python: thread specific breakpoint right thread
FAIL: gdb.multi/tids.exp: single inferior: thread
FAIL: gdb.multi/tids.exp: single-inferior but not initial: info threads with multiple inferiors
FAIL: gdb.multi/tids.exp: single-inferior but not initial: info threads with single inferior
FAIL: gdb.multi/tids.exp: single-inferior but not initial: thread again
FAIL: gdb.multi/tids.exp: two inferiors: continue to breakpoint: once
FAIL: gdb.multi/tids.exp: two inferiors: continue to breakpoint: twice
FAIL: gdb.multi/tids.exp: two inferiors: info threads
FAIL: gdb.multi/tids.exp: two inferiors: info threads \$inf.\$thr_start
FAIL: gdb.multi/tids.exp: two inferiors: info threads \$inf.\$thr_start-\$thr_end
FAIL: gdb.multi/tids.exp: two inferiors: info threads \$inf.\$thr_start-3
FAIL: gdb.multi/tids.exp: two inferiors: info threads \$inf.2
FAIL: gdb.multi/tids.exp: two inferiors: info threads \$inf.2-\$thr_end
FAIL: gdb.multi/tids.exp: two inferiors: info threads \$inf.2-3
FAIL: gdb.multi/tids.exp: two inferiors: info threads \$thr_start
FAIL: gdb.multi/tids.exp: two inferiors: info threads \$thr_start-\$thr_end
FAIL: gdb.multi/tids.exp: two inferiors: info threads \$thr_start-3
FAIL: gdb.multi/tids.exp: two inferiors: info threads *
FAIL: gdb.multi/tids.exp: two inferiors: info threads -gid
FAIL: gdb.multi/tids.exp: two inferiors: info threads 1 1.2-3
FAIL: gdb.multi/tids.exp: two inferiors: info threads 1 2 3
FAIL: gdb.multi/tids.exp: two inferiors: info threads 1-3
FAIL: gdb.multi/tids.exp: two inferiors: info threads 1.\$thr_start
FAIL: gdb.multi/tids.exp: two inferiors: info threads 1.\$thr_start-\$thr_end
FAIL: gdb.multi/tids.exp: two inferiors: info threads 1.\$thr_start-3
FAIL: gdb.multi/tids.exp: two inferiors: info threads 1.*
FAIL: gdb.multi/tids.exp: two inferiors: info threads 1.* 2.*
FAIL: gdb.multi/tids.exp: two inferiors: info threads 1.* 2.1
FAIL: gdb.multi/tids.exp: two inferiors: info threads 1.1 1.2 1.3 2.1 2.2
FAIL: gdb.multi/tids.exp: two inferiors: info threads 1.1 2-3
FAIL: gdb.multi/tids.exp: two inferiors: info threads 1.1-2 2.2-3
FAIL: gdb.multi/tids.exp: two inferiors: info threads 1.1-3
FAIL: gdb.multi/tids.exp: two inferiors: info threads 1.2-\$thr_end
FAIL: gdb.multi/tids.exp: two inferiors: info threads 2-\$thr_end
FAIL: gdb.multi/tids.exp: two inferiors: info threads 2.* 1.*
FAIL: gdb.multi/tids.exp: two inferiors: info threads 2.1 1.*
FAIL: gdb.multi/tids.exp: two inferiors: info threads 2.1 2-3
FAIL: gdb.multi/tids.exp: two inferiors: info threads again
FAIL: gdb.multi/tids.exp: two inferiors: more threads: continue to breakpoint: once
FAIL: gdb.multi/tids.exp: two inferiors: more threads: continue to breakpoint: twice
FAIL: gdb.multi/tids.exp: two inferiors: p \$_gthread == 4
FAIL: gdb.multi/tids.exp: two inferiors: p \$_thread == 2
FAIL: gdb.multi/tids.exp: two inferiors: thread
FAIL: gdb.multi/tids.exp: two inferiors: thread apply \$inf.\$thr_start
FAIL: gdb.multi/tids.exp: two inferiors: thread apply \$inf.\$thr_start-\$thr_end
FAIL: gdb.multi/tids.exp: two inferiors: thread apply \$inf.\$thr_start-3
FAIL: gdb.multi/tids.exp: two inferiors: thread apply \$inf.2
FAIL: gdb.multi/tids.exp: two inferiors: thread apply \$inf.2-\$thr_end
FAIL: gdb.multi/tids.exp: two inferiors: thread apply \$inf.2-3
FAIL: gdb.multi/tids.exp: two inferiors: thread apply \$thr_start
FAIL: gdb.multi/tids.exp: two inferiors: thread apply \$thr_start-\$thr_end
FAIL: gdb.multi/tids.exp: two inferiors: thread apply \$thr_start-3
FAIL: gdb.multi/tids.exp: two inferiors: thread apply *
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 1 1.2-3
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 1 2 3
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 1-3
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 1.\$thr_start
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 1.\$thr_start-\$thr_end
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 1.\$thr_start-3
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 1.*
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 1.* 2.*
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 1.* 2.1
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 1.1 1.2 1.3 2.1 2.2
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 1.1 2-3
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 1.1-2 2.2-3
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 1.1-3
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 1.2-\$thr_end
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 2-\$thr_end
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 2.* 1.*
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 2.1 1.*
FAIL: gdb.multi/tids.exp: two inferiors: thread apply 2.1 2-3
FAIL: gdb.multi/tids.exp: two inferiors: thread apply all
FAIL: gdb.multi/tids.exp: two inferiors: thread apply all -ascending
FAIL: gdb.multi/watchpoint-multi-exit.exp: dispose=detach: can't run to child_function
FAIL: gdb.multi/watchpoint-multi-exit.exp: dispose=exit: can't run to child_function
FAIL: gdb.multi/watchpoint-multi-exit.exp: dispose=kill: can't run to child_function
FAIL: gdb.multi/watchpoint-multi.exp: awatch b on inferior 1
FAIL: gdb.multi/watchpoint-multi.exp: awatch c on inferior 2
FAIL: gdb.multi/watchpoint-multi.exp: catch b on inferior 1
FAIL: gdb.multi/watchpoint-multi.exp: catch c on inferior 2
FAIL: gdb.multi/watchpoint-multi.exp: catch marker_exit in inferior 1
FAIL: gdb.multi/watchpoint-multi.exp: catch marker_exit in inferior 2
FAIL: gdb.multi/watchpoint-multi.exp: start to main inferior 2
XPASS: gdb.python/lib-types.exp: python print (str (typedef_const_typedef_class1_ref_obj.type)) (PRMS gcc/55641)
ERROR: can't read "process_id": no such variable
FAIL: gdb.python/py-events.exp: get current thread
ERROR: tcl error sourcing /vol/src/gnu/gdb/hg/master/local/gdb/testsuite/gdb.python/py-events.exp.
FAIL: gdb.python/py-finish-breakpoint.exp: catch out of scope after exec
FAIL: gdb.python/py-finish-breakpoint2.exp: check FinishBreakpoint in catch()
FAIL: gdb.python/py-finish-breakpoint2.exp: check finish BP removal
FAIL: gdb.python/py-finish-breakpoint2.exp: continue to second exception
FAIL: gdb.python/py-finish-breakpoint2.exp: set FinishBP after the exception
FAIL: gdb.python/py-inferior.exp: continue to breakpoint: cont to Break here. (timeout)
FAIL: gdb.python/py-inferior.exp: test Inferior.threads
FAIL: gdb.python/py-inferior.exp: test Inferior.threads 2
FAIL: gdb.python/py-infthread.exp: test InferiorThread.global_num
FAIL: gdb.python/py-infthread.exp: test InferiorThread.num
FAIL: gdb.python/py-prettyprint.exp: print estring2
FAIL: gdb.python/py-prettyprint.exp: print estring2
FAIL: gdb.python/py-thrhandle.exp: Pass overly large object to thread_from_thread_handle
FAIL: gdb.python/py-thrhandle.exp: Pass too small of an object to thread_from_thread_handle
FAIL: gdb.python/py-thrhandle.exp: info threads
FAIL: gdb.python/py-thrhandle.exp: print thread id for thrs[0]
FAIL: gdb.python/py-thrhandle.exp: print thread id for thrs[1]
FAIL: gdb.python/py-thrhandle.exp: print thread id for thrs[2]
FAIL: gdb.rust/expr.exp: print b"\\xddhi bob"
FAIL: gdb.rust/expr.exp: print b"has\\0nul"
FAIL: gdb.rust/expr.exp: print b"hi rust"
FAIL: gdb.rust/expr.exp: print br##"hi"##
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 10: attach (got interactive prompt)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 10: break at break_fn: 1
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 10: break at break_fn: 2
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 10: break at break_fn: 3
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 10: break break_fn
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 10: no new threads (timeout)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 10: set breakpoint always-inserted on
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 1: attach (timeout)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 1: break at break_fn: 1
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 1: break at break_fn: 2
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 1: break at break_fn: 3
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 1: detach
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 1: no new threads (timeout)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 1: print seconds_left
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 1: reset timer in the inferior
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 1: set breakpoint always-inserted off
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 1: set breakpoint always-inserted on (timeout)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: attach (got interactive prompt)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: break at break_fn: 1
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: break at break_fn: 2
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: break at break_fn: 3
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: break break_fn
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: detach
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: no new threads (timeout)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: print seconds_left
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: reset timer in the inferior
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: set breakpoint always-inserted off
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 2: set breakpoint always-inserted on (timeout)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 3: attach (got interactive prompt)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 3: break at break_fn: 1
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 3: break at break_fn: 2
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 3: break at break_fn: 3
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 3: break break_fn
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 3: detach
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 3: no new threads
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 3: print seconds_left
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 3: reset timer in the inferior
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 3: set breakpoint always-inserted off
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 3: set breakpoint always-inserted on
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 4: attach (got interactive prompt)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 4: break at break_fn: 1
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 4: break at break_fn: 2
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 4: break at break_fn: 3
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 4: break break_fn
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 4: detach
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 4: no new threads (timeout)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 4: print seconds_left
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 4: reset timer in the inferior
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 4: set breakpoint always-inserted off
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 4: set breakpoint always-inserted on
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 5: attach (got interactive prompt)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 5: break at break_fn: 1
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 5: break at break_fn: 2
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 5: break at break_fn: 3
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 5: break break_fn
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 5: detach
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 5: no new threads (timeout)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 5: print seconds_left
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 5: reset timer in the inferior
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 5: set breakpoint always-inserted off
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 5: set breakpoint always-inserted on
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 6: attach (got interactive prompt)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 6: break at break_fn: 1
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 6: break at break_fn: 2
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 6: break at break_fn: 3
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 6: break break_fn
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 6: detach
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 6: no new threads
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 6: print seconds_left
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 6: reset timer in the inferior
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 6: set breakpoint always-inserted off
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 6: set breakpoint always-inserted on
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 7: attach (got interactive prompt)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 7: break at break_fn: 1
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 7: break at break_fn: 2
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 7: break at break_fn: 3
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 7: break break_fn
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 7: detach
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 7: no new threads (timeout)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 7: print seconds_left
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 7: reset timer in the inferior
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 7: set breakpoint always-inserted off
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 7: set breakpoint always-inserted on
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 8: attach (got interactive prompt)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 8: break at break_fn: 1
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 8: break at break_fn: 2
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 8: break at break_fn: 3
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 8: break break_fn
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 8: detach
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 8: no new threads (timeout)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 8: print seconds_left
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 8: reset timer in the inferior
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 8: set breakpoint always-inserted off
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 8: set breakpoint always-inserted on
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 9: attach (got interactive prompt)
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 9: break at break_fn: 1
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 9: break at break_fn: 2
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 9: break at break_fn: 3
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 9: break break_fn
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 9: detach
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 9: no new threads
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 9: print seconds_left
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 9: reset timer in the inferior
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 9: set breakpoint always-inserted off
FAIL: gdb.threads/attach-many-short-lived-threads.exp: iter 9: set breakpoint always-inserted on
FAIL: gdb.threads/break-while-running.exp: w/ithr: always-inserted off: all-stop: all threads stopped
FAIL: gdb.threads/break-while-running.exp: w/ithr: always-inserted off: all-stop: breakpoint is hit (timeout)
FAIL: gdb.threads/break-while-running.exp: w/ithr: always-inserted off: all-stop: continuing thread 2
FAIL: gdb.threads/break-while-running.exp: w/ithr: always-inserted off: all-stop: continuing thread 3
FAIL: gdb.threads/break-while-running.exp: w/ithr: always-inserted off: all-stop: only main stopped
FAIL: gdb.threads/break-while-running.exp: w/ithr: always-inserted on: all-stop: all threads stopped
FAIL: gdb.threads/break-while-running.exp: w/ithr: always-inserted on: all-stop: breakpoint is hit (timeout)
FAIL: gdb.threads/break-while-running.exp: w/ithr: always-inserted on: all-stop: continuing thread 2
FAIL: gdb.threads/break-while-running.exp: w/ithr: always-inserted on: all-stop: continuing thread 3
FAIL: gdb.threads/break-while-running.exp: w/ithr: always-inserted on: all-stop: only main stopped
FAIL: gdb.threads/break-while-running.exp: wo/ithr: always-inserted off: all-stop: all threads stopped
FAIL: gdb.threads/break-while-running.exp: wo/ithr: always-inserted off: all-stop: breakpoint is hit (timeout)
FAIL: gdb.threads/break-while-running.exp: wo/ithr: always-inserted off: all-stop: continuing thread 2
FAIL: gdb.threads/break-while-running.exp: wo/ithr: always-inserted off: all-stop: continuing thread 3
FAIL: gdb.threads/break-while-running.exp: wo/ithr: always-inserted on: all-stop: all threads stopped
FAIL: gdb.threads/break-while-running.exp: wo/ithr: always-inserted on: all-stop: breakpoint is hit (timeout)
FAIL: gdb.threads/break-while-running.exp: wo/ithr: always-inserted on: all-stop: continuing thread 2
FAIL: gdb.threads/break-while-running.exp: wo/ithr: always-inserted on: all-stop: continuing thread 3
ERROR: breakpoints not deleted
FAIL: gdb.threads/continue-pending-status.exp: attempt 10: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 10: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 10: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 10: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 10: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 11: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 11: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 11: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 11: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 11: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 12: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 12: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 12: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 12: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 12: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 13: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 13: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 13: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 13: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 13: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 14: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 14: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 14: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 14: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 14: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 15: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 15: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 15: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 15: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 15: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 16: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 16: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 16: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 16: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 16: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 17: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 17: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 17: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 17: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 17: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 18: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 18: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 18: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 18: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 18: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 19: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 19: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 19: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 19: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 19: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 1: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 2: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 3: caught interrupt
UNRESOLVED: gdb.threads/continue-pending-status.exp: attempt 3: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 3: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 3: delete all breakpoints in delete_breakpoints (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 3: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 4: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 4: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 4: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 4: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 4: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 5: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 5: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 5: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 5: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 5: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 6: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 6: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 6: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 6: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 6: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 7: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 7: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 7: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 7: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 7: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 8: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 8: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 8: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 8: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 8: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 9: caught interrupt
FAIL: gdb.threads/continue-pending-status.exp: attempt 9: continue for ctrl-c
FAIL: gdb.threads/continue-pending-status.exp: attempt 9: continue to tight loop
FAIL: gdb.threads/continue-pending-status.exp: attempt 9: set break in tight loop (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: attempt 9: switch to non-event thread (GDB internal error)
FAIL: gdb.threads/continue-pending-status.exp: no thread starvation
FAIL: gdb.threads/execl.exp: continue across exec
FAIL: gdb.threads/execl.exp: continue until exit
FAIL: gdb.threads/execl.exp: info threads before exec
FAIL: gdb.threads/fork-plus-threads.exp: detach-on-fork=off: can't run to main
FAIL: gdb.threads/fork-plus-threads.exp: detach-on-fork=on: can't run to main
FAIL: gdb.threads/forking-threads-plus-breakpoint.exp: cond_bp_target=0: detach_on_fork=on: displaced=off: can't run to main
FAIL: gdb.threads/forking-threads-plus-breakpoint.exp: cond_bp_target=1: detach_on_fork=on: displaced=off: can't run to main
FAIL: gdb.threads/gcore-thread.exp: core0file: re-load generated corefile
FAIL: gdb.threads/gcore-thread.exp: corefile: a corefile thread is executing thread2
FAIL: gdb.threads/gcore-thread.exp: corefile: corefile contains at least two threads
FAIL: gdb.threads/gcore-thread.exp: corefile: thread2 is current thread in corefile
FAIL: gdb.threads/hand-call-in-threads.exp: call hand_call() (GDB internal error)
FAIL: gdb.threads/hand-call-in-threads.exp: hand call, thread 3 (runaway target)
FAIL: gdb.threads/info-threads-cur-sal.exp: info threads before break
FAIL: gdb.threads/info-threads-cur-sal.exp: info threads before list
FAIL: gdb.threads/interrupt-while-step-over.exp: displaced-stepping=off: couldn't run to all_started
FAIL: gdb.threads/leader-exit.exp: single thread has been left
FAIL: gdb.threads/local-watch-wrong-thread.exp: breakpoint on the other thread
FAIL: gdb.threads/local-watch-wrong-thread.exp: breakpoint on thread_function0's caller
FAIL: gdb.threads/local-watch-wrong-thread.exp: delete 5
FAIL: gdb.threads/local-watch-wrong-thread.exp: local watchpoint automatically deleted (timeout)
FAIL: gdb.threads/local-watch-wrong-thread.exp: local watchpoint is still in breakpoint list
FAIL: gdb.threads/local-watch-wrong-thread.exp: local watchpoint still triggers
FAIL: gdb.threads/local-watch-wrong-thread.exp: local watchpoint triggers
FAIL: gdb.threads/local-watch-wrong-thread.exp: set local watchpoint on *myp
FAIL: gdb.threads/local-watch-wrong-thread.exp: set local watchpoint on *myp, with false conditional
FAIL: gdb.threads/local-watch-wrong-thread.exp: the other thread stopped on breakpoint
FAIL: gdb.threads/manythreads.exp: check thread name
FAIL: gdb.threads/manythreads.exp: give a name to the thread
FAIL: gdb.threads/manythreads.exp: info threads
FAIL: gdb.threads/manythreads.exp: stop threads 1
FAIL: gdb.threads/manythreads.exp: stop threads 2
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 10
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 11
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 12
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 13
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 14
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 15
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 16
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 17
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 18
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 19
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 2
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 20
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 21
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 22
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 23
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 24
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 25
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 26
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 27
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 28
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 29
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 3
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 30
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 31
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 4
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 5
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 6
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 7
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 8
FAIL: gdb.threads/multi-create.exp: continue to breakpoint 9
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: continue: continue (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: continue: setting breakpoint at 111 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: continue: setup: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: continue: setup: continue to breakpoint: run to breakpoint in thread 3 (GDB internal error)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: continue: setup: info threads shows all threads
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: continue: setup: set scheduler-locking off (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: continue: setup: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: continue: setup: unbreak loop in thread 3
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: continue: thread 1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: next: next (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: next: setup: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: next: setup: continue to breakpoint: run to breakpoint in thread 3 (GDB internal error)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: next: setup: info threads shows all threads
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: next: setup: set scheduler-locking off (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: next: setup: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: next: setup: unbreak loop in thread 3
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: next: thread 1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: continue to sigusr1_handler (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: queue-signal SIGUSR1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: setting breakpoint at sigusr1_handler (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: setup: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: setup: continue to breakpoint: run to breakpoint in thread 3 (GDB internal error)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: setup: info threads shows all threads
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: setup: set scheduler-locking off (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: setup: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: setup: unbreak loop in thread 3
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: switch back to thread 1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr1: thread 1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: continue to sigusr1_handler (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: queue-signal SIGUSR1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: setting breakpoint at sigusr1_handler (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: setup: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: setup: continue to breakpoint: run to breakpoint in thread 3 (GDB internal error)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: setup: info threads shows all threads
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: setup: set scheduler-locking off (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: setup: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: setup: unbreak loop in thread 3
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: switch back to thread 1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr2: thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: continue to sigusr1_handler (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: queue-signal SIGUSR1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: setting breakpoint at sigusr1_handler (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: setup: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: setup: continue to breakpoint: run to breakpoint in thread 3 (GDB internal error)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: setup: info threads shows all threads
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: setup: set scheduler-locking off (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: setup: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: setup: unbreak loop in thread 3
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: switch back to thread 1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: signal thr3: thread 3 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: step: setup: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: step: setup: continue to breakpoint: run to breakpoint in thread 3 (GDB internal error)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: step: setup: info threads shows all threads
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: step: setup: set scheduler-locking off (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: step: setup: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: step: setup: unbreak loop in thread 3
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: step: step (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=off: step: thread 1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: continue: continue (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: continue: setting breakpoint at 111 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: continue: setup: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: continue: setup: continue to breakpoint: run to breakpoint in thread 3 (GDB internal error)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: continue: setup: info threads shows all threads
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: continue: setup: set scheduler-locking off (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: continue: setup: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: continue: setup: unbreak loop in thread 3
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: continue: thread 1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: next: next (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: next: setup: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: next: setup: continue to breakpoint: run to breakpoint in thread 3 (GDB internal error)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: next: setup: info threads shows all threads
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: next: setup: set scheduler-locking off (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: next: setup: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: next: setup: unbreak loop in thread 3
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: next: thread 1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: continue to sigusr1_handler (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: queue-signal SIGUSR1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: setting breakpoint at sigusr1_handler (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: setup: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: setup: continue to breakpoint: run to breakpoint in thread 3 (GDB internal error)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: setup: info threads shows all threads
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: setup: set scheduler-locking off (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: setup: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: setup: unbreak loop in thread 3
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: switch back to thread 1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr1: thread 1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: continue to sigusr1_handler (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: queue-signal SIGUSR1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: setting breakpoint at sigusr1_handler (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: setup: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: setup: continue to breakpoint: run to breakpoint in thread 3 (GDB internal error)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: setup: info threads shows all threads
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: setup: set scheduler-locking off (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: setup: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: setup: unbreak loop in thread 3
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: switch back to thread 1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr2: thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: continue to sigusr1_handler (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: queue-signal SIGUSR1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: setting breakpoint at sigusr1_handler (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: setup: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: setup: continue to breakpoint: run to breakpoint in thread 3 (GDB internal error)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: setup: info threads shows all threads
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: setup: set scheduler-locking off (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: setup: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: setup: unbreak loop in thread 3
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: switch back to thread 1 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: signal thr3: thread 3 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: step: setup: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: step: setup: continue to breakpoint: run to breakpoint in thread 3 (GDB internal error)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: step: setup: info threads shows all threads
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: step: setup: set scheduler-locking off (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: step: setup: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: step: setup: unbreak loop in thread 3
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: step: step (timeout)
FAIL: gdb.threads/multiple-step-overs.exp: displaced=on: step: thread 1 (timeout)
FAIL: gdb.threads/multiple-successive-infcall.exp: thread=1: call inferior function (timeout)
FAIL: gdb.threads/multiple-successive-infcall.exp: thread=1: thread 1 (timeout)
FAIL: gdb.threads/multiple-successive-infcall.exp: thread=2: call inferior function (timeout)
FAIL: gdb.threads/multiple-successive-infcall.exp: thread=3: call inferior function
FAIL: gdb.threads/multiple-successive-infcall.exp: thread=3: created new thread
FAIL: gdb.threads/multiple-successive-infcall.exp: thread=4: call inferior function
FAIL: gdb.threads/multiple-successive-infcall.exp: thread=4: created new thread
FAIL: gdb.threads/multiple-successive-infcall.exp: thread=5: call inferior function (GDB internal error)
FAIL: gdb.threads/multiple-successive-infcall.exp: thread=5: created new thread
FAIL: gdb.threads/names.exp: list threads
FAIL: gdb.threads/next-bp-other-thread.exp: schedlock=off: info threads shows all threads
FAIL: gdb.threads/next-bp-other-thread.exp: schedlock=off: next over function call
FAIL: gdb.threads/next-bp-other-thread.exp: schedlock=on: info threads shows all threads
FAIL: gdb.threads/next-bp-other-thread.exp: schedlock=step: info threads shows all threads
FAIL: gdb.threads/next-while-other-thread-longjmps.exp: next to line 1
FAIL: gdb.threads/next-while-other-thread-longjmps.exp: next to line 10
FAIL: gdb.threads/next-while-other-thread-longjmps.exp: next to line 2
FAIL: gdb.threads/next-while-other-thread-longjmps.exp: next to line 3
FAIL: gdb.threads/next-while-other-thread-longjmps.exp: next to line 4
FAIL: gdb.threads/next-while-other-thread-longjmps.exp: next to line 5
FAIL: gdb.threads/next-while-other-thread-longjmps.exp: next to line 6
FAIL: gdb.threads/next-while-other-thread-longjmps.exp: next to line 7
FAIL: gdb.threads/next-while-other-thread-longjmps.exp: next to line 8
FAIL: gdb.threads/next-while-other-thread-longjmps.exp: next to line 9
FAIL: gdb.threads/no-unwaited-for-left.exp: continue stops when the main thread exits
FAIL: gdb.threads/no-unwaited-for-left.exp: continue stops when thread 2 exits
FAIL: gdb.threads/no-unwaited-for-left.exp: only main thread left, thread 2 terminated
FAIL: gdb.threads/no-unwaited-for-left.exp: only thread 3 left, main thread terminated
FAIL: gdb.threads/non-ldr-exc-1.exp: lock-sched=off,non-stop=off: continue over exec
FAIL: gdb.threads/non-ldr-exc-1.exp: lock-sched=off,non-stop=on: continue over exec
FAIL: gdb.threads/non-ldr-exc-1.exp: lock-sched=on,non-stop=off: continue over exec
FAIL: gdb.threads/non-ldr-exc-2.exp: lock-sched=off,non-stop=off: continue over exec
FAIL: gdb.threads/non-ldr-exc-2.exp: lock-sched=off,non-stop=off: single thread left
FAIL: gdb.threads/non-ldr-exc-2.exp: lock-sched=off,non-stop=on: continue over exec
FAIL: gdb.threads/non-ldr-exc-2.exp: lock-sched=off,non-stop=on: single thread left
FAIL: gdb.threads/non-ldr-exc-2.exp: lock-sched=off,non-stop=on: thread 2
FAIL: gdb.threads/non-ldr-exc-2.exp: lock-sched=on,non-stop=off: continue over exec
FAIL: gdb.threads/non-ldr-exc-2.exp: lock-sched=on,non-stop=off: single thread left
FAIL: gdb.threads/non-ldr-exc-3.exp: lock-sched=off,non-stop=off: continue over exec
FAIL: gdb.threads/non-ldr-exc-3.exp: lock-sched=off,non-stop=on: continue over exec
FAIL: gdb.threads/non-ldr-exc-3.exp: lock-sched=off,non-stop=on: thread 2
FAIL: gdb.threads/non-ldr-exc-3.exp: lock-sched=on,non-stop=off: continue over exec
FAIL: gdb.threads/non-ldr-exc-4.exp: lock-sched=off,non-stop=off: continue over exec
FAIL: gdb.threads/non-ldr-exc-4.exp: lock-sched=off,non-stop=on: continue over exec
FAIL: gdb.threads/non-ldr-exc-4.exp: lock-sched=on,non-stop=off: continue over exec
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue (the program is no longer running)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: continue to breakpoint: _exit (the program exited)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: detach child (the program is no longer running)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: detach: switch to parent
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: continue (the program is no longer running)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: continue to breakpoint: _exit (the program exited)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: detach child (the program is no longer running)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: killed outside: switch to parent
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue (the program is no longer running)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: _exit (the program is no longer running)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: continue to breakpoint: child_function (the program exited)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: detach child (the program is no longer running)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: continue: watchpoint: switch to parent
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: continue to breakpoint: _exit (the program exited)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: detach child (the program is no longer running)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: detach parent (the program is no longer running)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: detach: switch to parent
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: killed outside: continue to breakpoint: _exit (the program exited)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: killed outside: detach child (the program is no longer running)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: killed outside: detach parent (the program is no longer running)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: killed outside: switch to parent
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: continue to breakpoint: _exit (the program is no longer running)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: continue to breakpoint: child_function (the program exited)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: detach child (the program is no longer running)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: detach parent (the program is no longer running)
FAIL: gdb.threads/process-dies-while-detaching.exp: multi-process: detach: watchpoint: switch to parent
FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: detach: continue (timeout)
FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: detach: continue to breakpoint: _exit (timeout)
FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: killed outside: continue to breakpoint: _exit (timeout)
FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: killed outside: get integer valueof "mypid" (timeout)
FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: watchpoint: continue (timeout)
FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: watchpoint: continue to breakpoint: _exit (timeout)
FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: continue: watchpoint: watch globalvar
FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: detach: continue to breakpoint: _exit (timeout)
FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: detach: detach (timeout)
FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: killed outside: continue to breakpoint: _exit (timeout)
FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: killed outside: get integer valueof "mypid" (timeout)
FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: watchpoint: continue to breakpoint: _exit (timeout)
FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: watchpoint: detach (timeout)
FAIL: gdb.threads/process-dies-while-detaching.exp: single-process: detach: watchpoint: watch globalvar
FAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=0: can't run to main
FAIL: gdb.threads/process-dies-while-handling-bp.exp: non_stop=on: cond_bp_target=1: can't run to main
FAIL: gdb.threads/pthreads.exp: run a failing command except in one frame of thread 2,3, -s to silently continue.  Do not show thread information
FAIL: gdb.threads/pthreads.exp: silent flag: cmd_and_args=taas faas: run a failing command except in one frame of thread 2,3, -s to silently continue
FAIL: gdb.threads/pthreads.exp: silent flag: cmd_and_args=tfaas: run a failing command except in one frame of thread 2,3, -s to silently continue
FAIL: gdb.threads/pthreads.exp: silent flag: cmd_and_args=thread apply all -s frame apply all -s: run a failing command except in one frame of thread 2,3, -s to silently continue
FAIL: gdb.threads/queue-signal.exp: determine thread functions
FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=next: call_function=0: other threads ran - unlocked
FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=next: call_function=1: current thread advanced - unlocked (wrong amount)
FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=next: call_function=1: next to increment (0)
FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=next: call_function=1: next to increment (1)
FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=next: call_function=1: next to increment (3)
FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=next: call_function=1: next to increment (4)
FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=next: call_function=1: next to increment (6)
FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=next: call_function=1: next to increment (7)
FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=next: call_function=1: next to increment (9)
FAIL: gdb.threads/schedlock.exp: schedlock=off: cmd=step: other threads ran - unlocked
FAIL: gdb.threads/signal-command-handle-nopass.exp: step-over no: thread 1 got the signal
FAIL: gdb.threads/signal-command-handle-nopass.exp: step-over no: thread 1 selected
FAIL: gdb.threads/signal-command-handle-nopass.exp: step-over yes: signal SIGUSR1 (timeout)
FAIL: gdb.threads/signal-command-handle-nopass.exp: step-over yes: thread 1 got the signal (timeout)
FAIL: gdb.threads/signal-command-handle-nopass.exp: step-over yes: thread 1 selected
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock off: b end (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock off: break handler_sigusr1 (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock off: break handler_sigusr2 (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock off: no more signals (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock off: second signal: signal delivered (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock off: set scheduler-locking off (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock off: signal command queries (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock off: stop with SIGUSR1 (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock off: stop with SIGUSR2 (GDB internal error)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock off: thread 1 (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock off: thread 1 selected
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock on: b end (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock on: break handler_sigusr1 (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock on: break handler_sigusr2 (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock on: no more signals (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock on: second signal: set scheduler-locking off (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock on: second signal: signal command queries (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock on: signal command does not query, signal delivered (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock on: stop with SIGUSR1 (timeout)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock on: stop with SIGUSR2 (GDB internal error)
FAIL: gdb.threads/signal-command-multiple-signals-pending.exp: schedlock on: thread 1 selected
FAIL: gdb.threads/signal-delivered-right-thread.exp: continue: continue (timeout)
FAIL: gdb.threads/signal-delivered-right-thread.exp: continue: thread 2 got the signal (timeout)
FAIL: gdb.threads/signal-delivered-right-thread.exp: continue: thread 2 intercepted signal
FAIL: gdb.threads/signal-delivered-right-thread.exp: signal 0: signal is delivered (timeout)
FAIL: gdb.threads/signal-delivered-right-thread.exp: signal 0: thread 2 got the signal (timeout)
FAIL: gdb.threads/signal-delivered-right-thread.exp: signal 0: thread 2 intercepted signal
FAIL: gdb.threads/signal-sigtrap.exp: sigtrap thread 1: right thread got the signal
FAIL: gdb.threads/signal-sigtrap.exp: sigtrap thread 1: signal SIGTRAP reaches handler (the program exited)
FAIL: gdb.threads/signal-sigtrap.exp: sigtrap thread 1: thread 2 hit breakpoint
FAIL: gdb.threads/signal-sigtrap.exp: sigtrap thread 2: right thread got the signal
FAIL: gdb.threads/signal-sigtrap.exp: sigtrap thread 2: signal SIGTRAP reaches handler (the program exited)
FAIL: gdb.threads/signal-sigtrap.exp: sigtrap thread 2: thread 2 hit breakpoint
ERROR: breakpoints not deleted
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: continue to breakpoint: run to breakpoint in thread 3 (GDB internal error)
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: delete all breakpoints in delete_breakpoints (timeout)
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: force loop break in thread 2 (timeout)
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: get count after step (timeout)
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: get count before step (timeout)
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: get my_number (timeout)
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: handle SIGUSR1 print nostop pass (timeout)
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: queue signal in thread 2 (timeout)
UNRESOLVED: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: set breakpoint to be stepped over (timeout)
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: set debug infrun 1 (timeout)
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: set scheduler-locking off (timeout)
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: step (pattern 1) (timeout)
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: stepped thread under control
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: switch to thread 1 to queue signal in thread 2 (timeout)
FAIL: gdb.threads/signal-while-stepping-over-bp-other-thread.exp: switch to thread 3 for stepping (timeout)
FAIL: gdb.threads/sigthread.exp: stop with control-c
FAIL: gdb.threads/step-bg-decr-pc-switch-thread.exp: info threads shows all threads
FAIL: gdb.threads/step-bg-decr-pc-switch-thread.exp: next& over inf loop
FAIL: gdb.threads/step-bg-decr-pc-switch-thread.exp: switch to main thread
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: continue: continue (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: continue: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: continue: info threads shows all threads
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: continue: set scheduler-locking off (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: continue: setting breakpoint at 37 (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: continue: thread 1 (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: continue: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: next: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: next: info threads shows all threads
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: next: next (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: next: set scheduler-locking off (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: next: setting breakpoint at 37 (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: next: thread 1 (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: next: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: step: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: step: info threads shows all threads
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: step: set scheduler-locking off (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: step: setting breakpoint at 37 (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: step: step (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: step: thread 1 (timeout)
FAIL: gdb.threads/step-over-lands-on-breakpoint.exp: displaced=off: step: unbreak loop in thread 2 (timeout)
ERROR: breakpoints not deleted
ERROR: breakpoints not deleted
ERROR: breakpoints not deleted
ERROR: breakpoints not deleted
ERROR: breakpoints not deleted
ERROR: breakpoints not deleted
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: clear watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: continue (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: continue to breakpoint: run to instruction that triggers watch in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: find addresses: clear watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: find addresses: continue to watchpoint (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: find addresses: delete all breakpoints in delete_breakpoints (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: find addresses: find addresses (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: find addresses: watch watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: info threads shows all threads
UNRESOLVED: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: set breakpoint at address that triggers watch (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: set scheduler-locking off (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: thread 1 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: continue: watch watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: clear watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: continue to breakpoint: run to instruction that triggers watch in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: find addresses: clear watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: find addresses: continue to watchpoint (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: find addresses: delete all breakpoints in delete_breakpoints (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: find addresses: find addresses (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: find addresses: watch watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: info threads shows all threads
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: next (timeout)
UNRESOLVED: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: set breakpoint at address that triggers watch (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: set scheduler-locking off (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: thread 1 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: next: watch watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: clear watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: continue to breakpoint: run to instruction that triggers watch in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: find addresses: clear watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: find addresses: continue to watchpoint (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: find addresses: delete all breakpoints in delete_breakpoints (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: find addresses: find addresses (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: find addresses: watch watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: info threads shows all threads
UNRESOLVED: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: set breakpoint at address that triggers watch (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: set scheduler-locking off (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: step (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: thread 1 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: no thread-specific bp: step: watch watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: clear watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: continue (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: continue to breakpoint: run to instruction that triggers watch in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: find addresses: clear watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: find addresses: continue to watchpoint (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: find addresses: delete all breakpoints in delete_breakpoints (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: find addresses: find addresses (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: find addresses: watch watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: info threads shows all threads
UNRESOLVED: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: set breakpoint at address that triggers watch (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: set breakpoint specific to thread 1 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: set scheduler-locking off (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: thread 1 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: continue: watch watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: clear watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: continue to breakpoint: run to instruction that triggers watch in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: find addresses: clear watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: find addresses: continue to watchpoint (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: find addresses: delete all breakpoints in delete_breakpoints (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: find addresses: find addresses (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: find addresses: watch watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: info threads shows all threads
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: next (timeout)
UNRESOLVED: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: set breakpoint at address that triggers watch (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: set breakpoint specific to thread 1 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: set scheduler-locking off (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: thread 1 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: next: watch watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: clear watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: continue to breakpoint: run to breakpoint in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: continue to breakpoint: run to instruction that triggers watch in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: find addresses: clear watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: find addresses: continue to watchpoint (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: find addresses: delete all breakpoints in delete_breakpoints (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: find addresses: find addresses (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: find addresses: watch watch_me (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: info threads shows all threads
UNRESOLVED: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: set breakpoint at address that triggers watch (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: set breakpoint specific to thread 1 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: set scheduler-locking off (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: step (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: thread 1 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: unbreak loop in thread 2 (timeout)
FAIL: gdb.threads/step-over-trips-on-watchpoint.exp: displaced=off: with thread-specific bp: step: watch watch_me (timeout)
FAIL: gdb.threads/stepi-random-signal.exp: continue to breakpoint: after pthread_kill
FAIL: gdb.threads/stepi-random-signal.exp: stepi (GDB internal error)
FAIL: gdb.threads/thread-execl.exp: schedlock off: get to main in new image
FAIL: gdb.threads/thread-execl.exp: schedlock on: get to main in new image
FAIL: gdb.threads/thread-execl.exp: schedlock step: get to main in new image
FAIL: gdb.threads/thread-specific.exp: get threads list (no threads)
FAIL: gdb.threads/threadapply.exp: thread_set=1.1: try kill-and-remove: info inferiors
FAIL: gdb.threads/threadapply.exp: thread_set=1.1: try remove 2: info inferiors
FAIL: gdb.threads/threadapply.exp: thread_set=1.1: try remove 2: thread
FAIL: gdb.threads/threadapply.exp: thread_set=1.1: try remove: info inferiors
FAIL: gdb.threads/threadapply.exp: thread_set=1.1: try remove: thread apply 1.1 remove
FAIL: gdb.threads/threadapply.exp: thread_set=all: try kill-and-remove: info inferiors
FAIL: gdb.threads/threadapply.exp: thread_set=all: try remove 2: info inferiors
FAIL: gdb.threads/threadapply.exp: thread_set=all: try remove 2: thread
FAIL: gdb.threads/threadapply.exp: thread_set=all: try remove: info inferiors
FAIL: gdb.threads/threadapply.exp: thread_set=all: try remove: thread apply all remove
FAIL: gdb.threads/threxit-hop-specific.exp: get past the thread specific breakpoint
FAIL: gdb.threads/tid-reuse.exp: continue to breakpoint: after_count
FAIL: gdb.threads/tid-reuse.exp: continue to breakpoint: after_reuse_time
FAIL: gdb.threads/tid-reuse.exp: continue to breakpoint: do_nothing_thread_func
FAIL: gdb.threads/tid-reuse.exp: get reuse_time
FAIL: gdb.threads/tid-reuse.exp: setting breakpoint at after_reuse_time
FAIL: gdb.threads/tid-reuse.exp: setting breakpoint at do_nothing_thread_func
FAIL: gdb.threads/tls-core.exp: gcore: print thread-local storage variable
FAIL: gdb.threads/tls-core.exp: native: load core file (incomplete note section)
FAIL: gdb.threads/tls-nodebug.exp: thread local storage, cast
FAIL: gdb.threads/tls-nodebug.exp: thread local storage, unknown type
FAIL: gdb.threads/tls-shared.exp: print storage info for thread local storage variable
FAIL: gdb.threads/tls-shared.exp: print thread local storage variable
FAIL: gdb.threads/tls-so_extern.exp: check so_extern address
FAIL: gdb.threads/tls-so_extern.exp: check so_extern address at end of main
FAIL: gdb.threads/tls-so_extern.exp: check so_extern address in main
FAIL: gdb.threads/tls-so_extern.exp: check so_extern address in other thread
FAIL: gdb.threads/tls-so_extern.exp: continue to break in the other thread
FAIL: gdb.threads/tls-so_extern.exp: continue to break in tls_ptr called at end of main
FAIL: gdb.threads/tls-so_extern.exp: print thread local storage variable
FAIL: gdb.threads/tls-var.exp: print tls_var
FAIL: gdb.threads/tls.exp: 3 another thread local storage
FAIL: gdb.threads/tls.exp: 3 get symbol value without frame
FAIL: gdb.threads/tls.exp: 3 thread local storage
FAIL: gdb.threads/tls.exp: 4 another thread local storage
FAIL: gdb.threads/tls.exp: 4 get symbol value without frame
FAIL: gdb.threads/tls.exp: 4 thread local storage
FAIL: gdb.threads/tls.exp: 5 another thread local storage
FAIL: gdb.threads/tls.exp: 5 get symbol value without frame
FAIL: gdb.threads/tls.exp: 5 thread local storage
FAIL: gdb.threads/tls.exp: 6 another thread local storage
FAIL: gdb.threads/tls.exp: 6 get symbol value without frame
FAIL: gdb.threads/tls.exp: 6 thread local storage
FAIL: gdb.threads/tls.exp: 7 another thread local storage
FAIL: gdb.threads/tls.exp: 7 get symbol value without frame
FAIL: gdb.threads/tls.exp: 7 thread local storage
FAIL: gdb.threads/tls.exp: 8 another thread local storage
FAIL: gdb.threads/tls.exp: 8 get symbol value without frame
FAIL: gdb.threads/tls.exp: 8 thread local storage
FAIL: gdb.threads/tls.exp: first another thread local storage
FAIL: gdb.threads/tls.exp: first get symbol value without frame
FAIL: gdb.threads/tls.exp: first thread local storage
FAIL: gdb.threads/tls.exp: mess at end
FAIL: gdb.threads/tls.exp: p a_thread_local
FAIL: gdb.threads/tls.exp: p a_thread_local second time
FAIL: gdb.threads/tls.exp: p file2_thread_local
FAIL: gdb.threads/tls.exp: second another thread local storage
FAIL: gdb.threads/tls.exp: second get symbol value without frame
FAIL: gdb.threads/tls.exp: second thread local storage
FAIL: gdb.threads/tls.exp: third another thread local storage
FAIL: gdb.threads/tls.exp: third get symbol value without frame
FAIL: gdb.threads/tls.exp: third thread local storage
FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: breakpoint after the first fork (timeout)
FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: breakpoint after the second fork (timeout)
FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: finish (timeout)
FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: hardware breakpoints work
FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: watchpoint after the first fork (timeout)
FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: watchpoint after the second fork (timeout)
FAIL: gdb.threads/watchpoint-fork.exp: parent: singlethreaded: watchpoints work (timeout)
FAIL: gdb.threads/watchthreads.exp: combination of threaded watchpoints = 30
FAIL: gdb.threads/watchthreads.exp: first watchpoint on args[0] hit
FAIL: gdb.threads/watchthreads.exp: first watchpoint on args[1] hit
FAIL: gdb.threads/watchthreads.exp: threaded watch loop
FAIL: gdb.threads/watchthreads.exp: watch args[0]
FAIL: gdb.threads/watchthreads.exp: watch args[1]
FAIL: gdb.threads/watchthreads.exp: watchpoint on args[0] hit in thread
FAIL: gdb.threads/watchthreads.exp: watchpoint on args[1] hit in thread
FAIL: gdb.threads/watchthreads2.exp: watch x
FAIL: gdb.threads/watchthreads2.exp: x watch loop
FAIL: gdb.threads/wp-replication.exp: no hardware watchpoints available

		=== gdb Summary ===

# of expected passes		43386
# of unexpected failures	2611
# of unexpected successes	12
# of expected failures		42
# of unknown successes		3
# of known failures		60
# of untested testcases		96
# of unresolved testcases	24
# of unsupported tests		187
/vol/obj/gnu/gdb/gdb/11.5-amd64-local/gdb/gdb version  8.2.50.20180803-git -nw -nx -data-directory /vol/obj/gnu/gdb/gdb/11.5-amd64-local/gdb/testsuite/../data-directory 

		=== gdb racy tests ===


		=== gdb Summary ===

# of racy tests:		181

Compiler version: 8.2.50.20180803-git -nw -nx -data-directory /vol/obj/gnu/gdb/gdb/11.5-amd64-local/gdb/testsuite/../data-directory gdb 
Platform: x86_64-pc-solaris2.11
configure flags: CFLAGS='-g -O2 -m64' CXXFLAGS='-g -O2 -m64' --disable-binutils --disable-gas --disable-ld --disable-sim --build amd64-pc-solaris2.11 --host amd64-pc-solaris2.11 --target amd64-pc-solaris2.11
BOOT_CFLAGS=-g -O2
EOF
Mail -s "Results for 8.2.50.20180803-git -nw -nx -data-directory /vol/obj/gnu/gdb/gdb/11.5-amd64-local/gdb/testsuite/../data-directory gdb testsuite on x86_64-pc-solaris2.11" gcc-testresults@gcc.gnu.org &&
true

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

* Re: Update dg-extract-results.* from gcc
  2018-07-20 11:02 Update dg-extract-results.* from gcc Rainer Orth
  2018-07-25 19:08 ` Tom Tromey
@ 2018-08-07 14:35 ` Pedro Alves
  2018-08-08 14:36   ` Rainer Orth
  2018-09-11 11:02 ` [obv] Fix dg-extract-results.sh path [Re: Update dg-extract-results.* from gcc] Jan Kratochvil
  2018-09-11 11:03 ` Missing toplevel contrib/ in gdb-*.tar.xz " Jan Kratochvil
  3 siblings, 1 reply; 19+ messages in thread
From: Pedro Alves @ 2018-08-07 14:35 UTC (permalink / raw)
  To: Rainer Orth, gdb-patches

On 07/20/2018 12:02 PM, Rainer Orth wrote:
> When looking at the gdb.sum file produced by dg-extract-results.sh on
> Solaris 11/x86, I noticed some wrong sorting, like this:
> 
> PASS: gdb.ada/addr_arith.exp: print something'address + 0
> PASS: gdb.ada/addr_arith.exp: print 0 + something'address
> PASS: gdb.ada/addr_arith.exp: print something'address - 0
> PASS: gdb.ada/addr_arith.exp: print 0 - something'address
> 
> Looking closer, I noticed that while dg-extract-results.sh had been
> copied over from contrib in the gcc repo, the corresponding
> dg-extract-results.py file had not.  The latter not only fixes the
> sorting problem I'd observed, but is also way faster than the shell
> version (like a factor of 50 faster).

We used to have the dg-extract-results.py file, but we deleted it
because it caused (funnily enough, sorting) problems.  See:

  https://sourceware.org/ml/gdb-patches/2015-02/msg00333.html

Has that sorting stability issue been meanwhile fixed upstream?

Thanks,
Pedro Alves

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

* Re: Update dg-extract-results.* from gcc
  2018-08-07 14:35 ` Pedro Alves
@ 2018-08-08 14:36   ` Rainer Orth
  2018-08-08 15:24     ` Pedro Alves
  0 siblings, 1 reply; 19+ messages in thread
From: Rainer Orth @ 2018-08-08 14:36 UTC (permalink / raw)
  To: Pedro Alves; +Cc: gdb-patches

Hi Pedro,

> On 07/20/2018 12:02 PM, Rainer Orth wrote:
>> When looking at the gdb.sum file produced by dg-extract-results.sh on
>> Solaris 11/x86, I noticed some wrong sorting, like this:
>> 
>> PASS: gdb.ada/addr_arith.exp: print something'address + 0
>> PASS: gdb.ada/addr_arith.exp: print 0 + something'address
>> PASS: gdb.ada/addr_arith.exp: print something'address - 0
>> PASS: gdb.ada/addr_arith.exp: print 0 - something'address
>> 
>> Looking closer, I noticed that while dg-extract-results.sh had been
>> copied over from contrib in the gcc repo, the corresponding
>> dg-extract-results.py file had not.  The latter not only fixes the
>> sorting problem I'd observed, but is also way faster than the shell
>> version (like a factor of 50 faster).
>
> We used to have the dg-extract-results.py file, but we deleted it
> because it caused (funnily enough, sorting) problems.  See:
>
>   https://sourceware.org/ml/gdb-patches/2015-02/msg00333.html
>
> Has that sorting stability issue been meanwhile fixed upstream?

not that I can see: between the version of dg-extract-results.py removed
in early 2015 and the one in current gcc trunk, there's only added
handling for DejaGnu ERRORs and another minor change to do with
summaries that doesn't seem to change anything wrt. sorting on first
blush.

Howver, I've just run make -j16 check three times in a row on
amd64-pc-solaris2.11, followed by make -j48 check, and the only
differences were to to 200+ racy tests, the vast majority of them in
gdb.threads.  Maybe the prior problems have been due to bugs in older
versions of python?

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

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

* Re: Update dg-extract-results.* from gcc
  2018-08-08 14:36   ` Rainer Orth
@ 2018-08-08 15:24     ` Pedro Alves
  2018-10-01  9:36       ` dg-extract-results's bad sorting behavior (Re: Update dg-extract-results.* from gcc) Pedro Alves
  0 siblings, 1 reply; 19+ messages in thread
From: Pedro Alves @ 2018-08-08 15:24 UTC (permalink / raw)
  To: Rainer Orth; +Cc: gdb-patches

On 08/08/2018 03:36 PM, Rainer Orth wrote:

>> On 07/20/2018 12:02 PM, Rainer Orth wrote:
>>> When looking at the gdb.sum file produced by dg-extract-results.sh on
>>> Solaris 11/x86, I noticed some wrong sorting, like this:
>>>
>>> PASS: gdb.ada/addr_arith.exp: print something'address + 0
>>> PASS: gdb.ada/addr_arith.exp: print 0 + something'address
>>> PASS: gdb.ada/addr_arith.exp: print something'address - 0
>>> PASS: gdb.ada/addr_arith.exp: print 0 - something'address
>>>
>>> Looking closer, I noticed that while dg-extract-results.sh had been
>>> copied over from contrib in the gcc repo, the corresponding
>>> dg-extract-results.py file had not.  The latter not only fixes the
>>> sorting problem I'd observed, but is also way faster than the shell
>>> version (like a factor of 50 faster).
>>
>> We used to have the dg-extract-results.py file, but we deleted it
>> because it caused (funnily enough, sorting) problems.  See:
>>
>>   https://sourceware.org/ml/gdb-patches/2015-02/msg00333.html
>>
>> Has that sorting stability issue been meanwhile fixed upstream?
> 
> not that I can see: between the version of dg-extract-results.py removed
> in early 2015 and the one in current gcc trunk, there's only added
> handling for DejaGnu ERRORs and another minor change to do with
> summaries that doesn't seem to change anything wrt. sorting on first
> blush.

OK.

> Howver, I've just run make -j16 check three times in a row on
> amd64-pc-solaris2.11, followed by make -j48 check, and the only
> differences were to to 200+ racy tests, the vast majority of them in
> gdb.threads.  

Thanks for testing.

> Maybe the prior problems have been due to bugs in older
> versions of python?
Might be.

IIRC, the sorting that would change would be the order that the different
individual gdb.sum results would  be merged (the per-gdb.sum order was
stable).  So comparing two runs, you'd get something like, in one run this:

 gdb.base/foo.exp:PASS: test1
 gdb.base/foo.exp:PASS: test2
 gdb.base/foo.exp:PASS: test3
 gdb.base/bar.exp:PASS: testA
 gdb.base/bar.exp:PASS: testB
 gdb.base/bar.exp:PASS: testC

and another run this:

 gdb.base/bar.exp:PASS: testA
 gdb.base/bar.exp:PASS: testB
 gdb.base/bar.exp:PASS: testC
 gdb.base/foo.exp:PASS: test1
 gdb.base/foo.exp:PASS: test2
 gdb.base/foo.exp:PASS: test3

which would result in all those tests spuriously showing up in a
gdb.sum old/new diff.

I'm not sure whether we were seeing that if you compared runs
of the same tree multiple times.  It could be that it only happened
when comparing the results of different trees, which contained
a slightly different set of tests and testcases, like for example
comparing testresults of a patched master against the testresults
of master from a month or week ago, which is something I frequently
do, for example.

*time passes*

Wait wait wait, can you clarify what you meant by wrong sorting in:

 PASS: gdb.ada/addr_arith.exp: print something'address + 0
 PASS: gdb.ada/addr_arith.exp: print 0 + something'address
 PASS: gdb.ada/addr_arith.exp: print something'address - 0
 PASS: gdb.ada/addr_arith.exp: print 0 - something'address

?

Why do you think those results _should_ be sorted?  And in what order?

Typically, the order/sequence in which the tests of a given exp
file is executed is important.  The order in the gdb.sum file must
be the order in which the fail/pass calls are written/issued in the .exp file.
It'd be absolutely incorrect to alphabetically sort the gdb.sum output.
Is that what the .py version does?  That's not what I recall, though.
I guess I may be confused.

Thanks,
Pedro Alves

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

* [obv] Fix dg-extract-results.sh path  [Re: Update dg-extract-results.* from gcc]
  2018-07-20 11:02 Update dg-extract-results.* from gcc Rainer Orth
  2018-07-25 19:08 ` Tom Tromey
  2018-08-07 14:35 ` Pedro Alves
@ 2018-09-11 11:02 ` Jan Kratochvil
  2018-09-11 11:03 ` Missing toplevel contrib/ in gdb-*.tar.xz " Jan Kratochvil
  3 siblings, 0 replies; 19+ messages in thread
From: Jan Kratochvil @ 2018-09-11 11:02 UTC (permalink / raw)
  To: Rainer Orth; +Cc: gdb-patches, Sergio Durigan Junior


[-- Attachment #0: Type: message/rfc822, Size: 1727 bytes --]

From: Jan Kratochvil <jan.kratochvil@redhat.com>
Subject: [PATCH] [testsuite] Fix dg-extract-results.sh path
Date: Tue, 11 Sep 2018 12:59:52 +0200

There was a typo in patch:
commit 5a6996172e6294ea37054b1a9caa3a923a8fe399
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date:   Mon Aug 6 16:05:16 2018 +0200
    Update dg-extract-results.* from gcc

gdb/testsuite/ChangeLog
2018-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* Makefile.in (check-parallel-racy): Fix dg-extract-results.sh path.
---
 gdb/testsuite/ChangeLog   | 4 ++++
 gdb/testsuite/Makefile.in | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index fc18b2223c..efefad51e9 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2018-09-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* Makefile.in (check-parallel-racy): Fix dg-extract-results.sh path.
+
 2018-09-10  Jerome Guitton  <guitton@adacore.com>
 
 	* gdb.ada/same_component_name: Add test for case of tagged record
diff --git a/gdb/testsuite/Makefile.in b/gdb/testsuite/Makefile.in
index f669a3c445..e7be686406 100644
--- a/gdb/testsuite/Makefile.in
+++ b/gdb/testsuite/Makefile.in
@@ -241,7 +241,7 @@ check-parallel-racy:
 	  $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh \
 	    `find racy_outputs/$$n -name gdb.sum -print` > \
 	    racy_outputs/$$n/gdb.sum; \
-	  $(SHELL) $(srcdir)/../../dg-extract-results.sh -L \
+	  $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh -L \
 	    `find racy_outputs/$$n -name gdb.log -print` > \
 	    racy_outputs/$$n/gdb.log; \
 	  sed -n '/=== gdb Summary ===/,$$ p' racy_outputs/$$n/gdb.sum; \
-- 
2.19.0.rc1

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

* Missing toplevel contrib/ in gdb-*.tar.xz  [Re: Update dg-extract-results.* from gcc]
  2018-07-20 11:02 Update dg-extract-results.* from gcc Rainer Orth
                   ` (2 preceding siblings ...)
  2018-09-11 11:02 ` [obv] Fix dg-extract-results.sh path [Re: Update dg-extract-results.* from gcc] Jan Kratochvil
@ 2018-09-11 11:03 ` Jan Kratochvil
  2018-09-11 11:20   ` Rainer Orth
  3 siblings, 1 reply; 19+ messages in thread
From: Jan Kratochvil @ 2018-09-11 11:03 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: gdb-patches, Rainer Orth, Sergio Durigan Junior

Hi Joel,

there is now toplevel contrib/ directory in GIT but for example in
gdb-8.2.50.20180910.tar.xz snapshot it is missing, could it be added?


Thanks,
Jan

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

* Re: Missing toplevel contrib/ in gdb-*.tar.xz  [Re: Update dg-extract-results.* from gcc]
  2018-09-11 11:03 ` Missing toplevel contrib/ in gdb-*.tar.xz " Jan Kratochvil
@ 2018-09-11 11:20   ` Rainer Orth
  2018-09-11 12:01     ` Joel Brobecker
  0 siblings, 1 reply; 19+ messages in thread
From: Rainer Orth @ 2018-09-11 11:20 UTC (permalink / raw)
  To: Jan Kratochvil; +Cc: Joel Brobecker, gdb-patches, Sergio Durigan Junior

Hi Jan,

> there is now toplevel contrib/ directory in GIT but for example in
> gdb-8.2.50.20180910.tar.xz snapshot it is missing, could it be added?

I suspect it just needs to be added to src-release.sh
(GDB_SUPPORT_DIRS), not being used on the binutils side so far, but I've
never tried creating a gdb tarball so far.

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

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

* Re: Missing toplevel contrib/ in gdb-*.tar.xz  [Re: Update dg-extract-results.* from gcc]
  2018-09-11 11:20   ` Rainer Orth
@ 2018-09-11 12:01     ` Joel Brobecker
  2018-09-12  5:21       ` [PATCH] Add "contrib" to the list of GDB support dirs (on src-release.sh) Sergio Durigan Junior
  2018-09-12  5:23       ` Missing toplevel contrib/ in gdb-*.tar.xz [Re: Update dg-extract-results.* from gcc] Sergio Durigan Junior
  0 siblings, 2 replies; 19+ messages in thread
From: Joel Brobecker @ 2018-09-11 12:01 UTC (permalink / raw)
  To: Rainer Orth; +Cc: Jan Kratochvil, gdb-patches, Sergio Durigan Junior

> > there is now toplevel contrib/ directory in GIT but for example in
> > gdb-8.2.50.20180910.tar.xz snapshot it is missing, could it be added?
> 
> I suspect it just needs to be added to src-release.sh
> (GDB_SUPPORT_DIRS), not being used on the binutils side so far, but I've
> never tried creating a gdb tarball so far.

That's my understanding as well. I can take a look at that, but not
before Thu at the very earliest (traveling).

-- 
Joel

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

* [PATCH] Add "contrib" to the list of GDB support dirs (on src-release.sh)
  2018-09-11 12:01     ` Joel Brobecker
@ 2018-09-12  5:21       ` Sergio Durigan Junior
  2018-09-13 14:26         ` Tom Tromey
  2018-09-12  5:23       ` Missing toplevel contrib/ in gdb-*.tar.xz [Re: Update dg-extract-results.* from gcc] Sergio Durigan Junior
  1 sibling, 1 reply; 19+ messages in thread
From: Sergio Durigan Junior @ 2018-09-12  5:21 UTC (permalink / raw)
  To: GDB Patches
  Cc: Rainer Orth, Joel Brobecker, Jan Kratochvil, binutils,
	Sergio Durigan Junior

On commit:

  commit 5a6996172e6294ea37054b1a9caa3a923a8fe399
  Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  Date:   Mon Aug 6 16:05:16 2018 +0200

      Update dg-extract-results.* from gcc

dg-extract-results.sh was moved from the "gdb/contrib/" directory to
the toplevel "contrib/" directory.  However, src-release.sh was not
updated in order to include "contrib/" in the tarball release of GDB.
This makes it very inconvenient to run and analyze the GDB testsuite
results.  This commit adds "contrib/" to the list of support
directories that are included in each GDB release.

ChangeLog:
2018-09-12  Sergio Durigan Junior  <sergiodj@redhat.com>

	* src-release.sh (GDB_SUPPORT_DIRS): Add "contrib".
---
 ChangeLog      | 4 ++++
 src-release.sh | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index ad0ed1d0e8..9fe7427b83 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2018-09-12  Sergio Durigan Junior  <sergiodj@redhat.com>
+
+	* src-release.sh (GDB_SUPPORT_DIRS): Add "contrib".
+
 2018-07-16  Nick Clifton  <nickc@redhat.com>
 
 	* src-release.sh (DEVO_SUPPORT): Add test-driver and ar-lib.
diff --git a/src-release.sh b/src-release.sh
index d0425d6aab..fe5dab5fb3 100755
--- a/src-release.sh
+++ b/src-release.sh
@@ -313,7 +313,7 @@ gas_release()
     tar_compress $package $tool "$GAS_SUPPORT_DIRS" "$compressors"
 }
 
-GDB_SUPPORT_DIRS="bfd include libiberty opcodes readline sim intl libdecnumber cpu zlib"
+GDB_SUPPORT_DIRS="bfd include libiberty opcodes readline sim intl libdecnumber cpu zlib contrib"
 gdb_release()
 {
     compressors=$1
-- 
2.17.1

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

* Re: Missing toplevel contrib/ in gdb-*.tar.xz  [Re: Update dg-extract-results.* from gcc]
  2018-09-11 12:01     ` Joel Brobecker
  2018-09-12  5:21       ` [PATCH] Add "contrib" to the list of GDB support dirs (on src-release.sh) Sergio Durigan Junior
@ 2018-09-12  5:23       ` Sergio Durigan Junior
  1 sibling, 0 replies; 19+ messages in thread
From: Sergio Durigan Junior @ 2018-09-12  5:23 UTC (permalink / raw)
  To: Joel Brobecker; +Cc: Rainer Orth, Jan Kratochvil, gdb-patches

On Tuesday, September 11 2018, Joel Brobecker wrote:

>> > there is now toplevel contrib/ directory in GIT but for example in
>> > gdb-8.2.50.20180910.tar.xz snapshot it is missing, could it be added?
>> 
>> I suspect it just needs to be added to src-release.sh
>> (GDB_SUPPORT_DIRS), not being used on the binutils side so far, but I've
>> never tried creating a gdb tarball so far.
>
> That's my understanding as well. I can take a look at that, but not
> before Thu at the very earliest (traveling).

Thanks everybody who's involved in this.  I took a stab at the problem,
and added "contrib" to the list of support GDB dirs.  Tested by
generating a release here, and things look fine.  The patch has been
submitted (Cc'ed binutils@s.o).

Thanks,

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/

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

* Re: [PATCH] Add "contrib" to the list of GDB support dirs (on src-release.sh)
  2018-09-12  5:21       ` [PATCH] Add "contrib" to the list of GDB support dirs (on src-release.sh) Sergio Durigan Junior
@ 2018-09-13 14:26         ` Tom Tromey
  2018-09-13 16:35           ` Sergio Durigan Junior
  0 siblings, 1 reply; 19+ messages in thread
From: Tom Tromey @ 2018-09-13 14:26 UTC (permalink / raw)
  To: Sergio Durigan Junior
  Cc: GDB Patches, Rainer Orth, Joel Brobecker, Jan Kratochvil, binutils

>>>>> "Sergio" == Sergio Durigan Junior <sergiodj@redhat.com> writes:

Sergio> ChangeLog:
Sergio> 2018-09-12  Sergio Durigan Junior  <sergiodj@redhat.com>

Sergio> 	* src-release.sh (GDB_SUPPORT_DIRS): Add "contrib".

Thanks, this is ok.

Tom

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

* Re: [PATCH] Add "contrib" to the list of GDB support dirs (on src-release.sh)
  2018-09-13 14:26         ` Tom Tromey
@ 2018-09-13 16:35           ` Sergio Durigan Junior
  0 siblings, 0 replies; 19+ messages in thread
From: Sergio Durigan Junior @ 2018-09-13 16:35 UTC (permalink / raw)
  To: Tom Tromey
  Cc: GDB Patches, Rainer Orth, Joel Brobecker, Jan Kratochvil, binutils

On Thursday, September 13 2018, Tom Tromey wrote:

>>>>>> "Sergio" == Sergio Durigan Junior <sergiodj@redhat.com> writes:
>
> Sergio> ChangeLog:
> Sergio> 2018-09-12  Sergio Durigan Junior  <sergiodj@redhat.com>
>
> Sergio> 	* src-release.sh (GDB_SUPPORT_DIRS): Add "contrib".
>
> Thanks, this is ok.

Thanks, pushed.

80ca5f98b86c9b209f392cb52dde8b8471856c5a

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/

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

* dg-extract-results's bad sorting behavior (Re: Update dg-extract-results.* from gcc)
  2018-08-08 15:24     ` Pedro Alves
@ 2018-10-01  9:36       ` Pedro Alves
  0 siblings, 0 replies; 19+ messages in thread
From: Pedro Alves @ 2018-10-01  9:36 UTC (permalink / raw)
  To: Rainer Orth; +Cc: gdb-patches

On 08/08/2018 04:24 PM, Pedro Alves wrote:
> On 08/08/2018 03:36 PM, Rainer Orth wrote:
> 
>>> On 07/20/2018 12:02 PM, Rainer Orth wrote:
>>>> When looking at the gdb.sum file produced by dg-extract-results.sh on
>>>> Solaris 11/x86, I noticed some wrong sorting, like this:
>>>>
>>>> PASS: gdb.ada/addr_arith.exp: print something'address + 0
>>>> PASS: gdb.ada/addr_arith.exp: print 0 + something'address
>>>> PASS: gdb.ada/addr_arith.exp: print something'address - 0
>>>> PASS: gdb.ada/addr_arith.exp: print 0 - something'address
>>>>
>>>> Looking closer, I noticed that while dg-extract-results.sh had been
>>>> copied over from contrib in the gcc repo, the corresponding
>>>> dg-extract-results.py file had not.  The latter not only fixes the
>>>> sorting problem I'd observed, but is also way faster than the shell
>>>> version (like a factor of 50 faster).
>>>
>>> We used to have the dg-extract-results.py file, but we deleted it
>>> because it caused (funnily enough, sorting) problems.  See:
>>>
>>>   https://sourceware.org/ml/gdb-patches/2015-02/msg00333.html
>>>
>>> Has that sorting stability issue been meanwhile fixed upstream?
>>
>> not that I can see: between the version of dg-extract-results.py removed
>> in early 2015 and the one in current gcc trunk, there's only added
>> handling for DejaGnu ERRORs and another minor change to do with
>> summaries that doesn't seem to change anything wrt. sorting on first
>> blush.
> 
> OK.
> 
>> Howver, I've just run make -j16 check three times in a row on
>> amd64-pc-solaris2.11, followed by make -j48 check, and the only
>> differences were to to 200+ racy tests, the vast majority of them in
>> gdb.threads.  
> 
> Thanks for testing.
> 
>> Maybe the prior problems have been due to bugs in older
>> versions of python?
> Might be.
> 
> IIRC, the sorting that would change would be the order that the different
> individual gdb.sum results would  be merged (the per-gdb.sum order was
> stable).  So comparing two runs, you'd get something like, in one run this:
> 
>  gdb.base/foo.exp:PASS: test1
>  gdb.base/foo.exp:PASS: test2
>  gdb.base/foo.exp:PASS: test3
>  gdb.base/bar.exp:PASS: testA
>  gdb.base/bar.exp:PASS: testB
>  gdb.base/bar.exp:PASS: testC
> 
> and another run this:
> 
>  gdb.base/bar.exp:PASS: testA
>  gdb.base/bar.exp:PASS: testB
>  gdb.base/bar.exp:PASS: testC
>  gdb.base/foo.exp:PASS: test1
>  gdb.base/foo.exp:PASS: test2
>  gdb.base/foo.exp:PASS: test3
> 
> which would result in all those tests spuriously showing up in a
> gdb.sum old/new diff.
> 
> I'm not sure whether we were seeing that if you compared runs
> of the same tree multiple times.  It could be that it only happened
> when comparing the results of different trees, which contained
> a slightly different set of tests and testcases, like for example
> comparing testresults of a patched master against the testresults
> of master from a month or week ago, which is something I frequently
> do, for example.
> 
> *time passes*
> 
> Wait wait wait, can you clarify what you meant by wrong sorting in:
> 
>  PASS: gdb.ada/addr_arith.exp: print something'address + 0
>  PASS: gdb.ada/addr_arith.exp: print 0 + something'address
>  PASS: gdb.ada/addr_arith.exp: print something'address - 0
>  PASS: gdb.ada/addr_arith.exp: print 0 - something'address
> 
> ?
> 
> Why do you think those results _should_ be sorted?  And in what order?
> 
> Typically, the order/sequence in which the tests of a given exp
> file is executed is important.  The order in the gdb.sum file must
> be the order in which the fail/pass calls are written/issued in the .exp file.
> It'd be absolutely incorrect to alphabetically sort the gdb.sum output.
> Is that what the .py version does?  That's not what I recall, though.
> I guess I may be confused.

Getting back to this, because I just diffed testresults between
runs of different vintage, and got bitten by the sorting problems.

I'm diffing testresults between a run on 20180713 and a run
against today's gdb, and I got a _ton_ of spurious diffs like these:

 -PASS: gdb.ada/complete.exp: complete p my_glob 
 -PASS: gdb.ada/complete.exp: complete p insi 
 -PASS: gdb.ada/complete.exp: complete p inner.insi 
 -PASS: gdb.ada/complete.exp: complete p pck.inne 
 -PASS: gdb.ada/complete.exp: complete p pck__inner__ins 
 -PASS: gdb.ada/complete.exp: complete p pck.inner.ins 
 -PASS: gdb.ada/complete.exp: complete p side 
 -PASS: gdb.ada/complete.exp: complete p exported 
 +PASS: gdb.ada/complete.exp: complete break ada 
  PASS: gdb.ada/complete.exp: complete p <Exported
 -PASS: gdb.ada/complete.exp: p <Exported_Capitalized> 
 -PASS: gdb.ada/complete.exp: p Exported_Capitalized 
 -PASS: gdb.ada/complete.exp: p exported_capitalized 
 -PASS: gdb.ada/complete.exp: complete p __gnat_ada_main_progra 
  PASS: gdb.ada/complete.exp: complete p <__gnat_ada_main_prog
 -PASS: gdb.ada/complete.exp: complete p some 
 +PASS: gdb.ada/complete.exp: complete p <pck__my 
 +PASS: gdb.ada/complete.exp: complete p __gnat_ada_main_progra 
 +PASS: gdb.ada/complete.exp: complete p ambig 
 +PASS: gdb.ada/complete.exp: complete p ambiguous_f 
 +PASS: gdb.ada/complete.exp: complete p ambiguous_func 
 +PASS: gdb.ada/complete.exp: complete p exported 
 +PASS: gdb.ada/complete.exp: complete p external_ident 
 +PASS: gdb.ada/complete.exp: complete p inner.insi 
 +PASS: gdb.ada/complete.exp: complete p insi 
 +PASS: gdb.ada/complete.exp: complete p local_ident 
 +PASS: gdb.ada/complete.exp: complete p my_glob 
  PASS: gdb.ada/complete.exp: complete p not_in_sco
 -PASS: gdb.ada/complete.exp: complete p pck.ins 
 -PASS: gdb.ada/complete.exp: complete p pck.my 
 +PASS: gdb.ada/complete.exp: complete p pck 
 +PASS: gdb.ada/complete.exp: complete p pck. 
 +PASS: gdb.ada/complete.exp: complete p pck.inne 
  PASS: gdb.ada/complete.exp: complete p pck.inne
  PASS: gdb.ada/complete.exp: complete p pck.inner.
 -PASS: gdb.ada/complete.exp: complete p local_ident 
 +PASS: gdb.ada/complete.exp: complete p pck.inner.ins 
 +PASS: gdb.ada/complete.exp: complete p pck.ins 
  PASS: gdb.ada/complete.exp: complete p pck.local_ident
 +PASS: gdb.ada/complete.exp: complete p pck.my 
 +PASS: gdb.ada/complete.exp: complete p pck__inner__ins 
  PASS: gdb.ada/complete.exp: complete p pck__local_ident
 -PASS: gdb.ada/complete.exp: complete p external_ident 
 -PASS: gdb.ada/complete.exp: complete p pck 
 -PASS: gdb.ada/complete.exp: complete p pck. 
 -PASS: gdb.ada/complete.exp: complete p <pck__my 
 +PASS: gdb.ada/complete.exp: complete p side 
 +PASS: gdb.ada/complete.exp: complete p some 
  PASS: gdb.ada/complete.exp: interactive complete 'print some'
 -PASS: gdb.ada/complete.exp: complete p ambig 
 -PASS: gdb.ada/complete.exp: complete p ambiguous_f 
 -PASS: gdb.ada/complete.exp: complete p ambiguous_func 
 +PASS: gdb.ada/complete.exp: p <Exported_Capitalized> 
 +PASS: gdb.ada/complete.exp: p Exported_Capitalized 
 +PASS: gdb.ada/complete.exp: p exported_capitalized 
  PASS: gdb.ada/complete.exp: set max-completions unlimited
 -PASS: gdb.ada/complete.exp: complete break ada 


Given the earlier discussions about sorting, I could
immediately recognize what is wrong.  It's that while
testsuite/outputs/gdb.ada/complete/gdb.sum lists the
test results in chronological order, preserving
execution sequence:

 Running src/gdb/testsuite/gdb.ada/complete.exp ...
 PASS: gdb.ada/complete.exp: compilation foo.adb
 PASS: gdb.ada/complete.exp: complete p my_glob
 PASS: gdb.ada/complete.exp: complete p insi
 PASS: gdb.ada/complete.exp: complete p inner.insi
 PASS: gdb.ada/complete.exp: complete p pck.inne
 PASS: gdb.ada/complete.exp: complete p pck__inner__ins
 PASS: gdb.ada/complete.exp: complete p pck.inner.ins
 PASS: gdb.ada/complete.exp: complete p side
 PASS: gdb.ada/complete.exp: complete p exported
 PASS: gdb.ada/complete.exp: complete p <Exported
 PASS: gdb.ada/complete.exp: p <Exported_Capitalized>
 PASS: gdb.ada/complete.exp: p Exported_Capitalized
 PASS: gdb.ada/complete.exp: p exported_capitalized
 PASS: gdb.ada/complete.exp: complete p __gnat_ada_main_progra
 PASS: gdb.ada/complete.exp: complete p <__gnat_ada_main_prog
 PASS: gdb.ada/complete.exp: complete p some
 PASS: gdb.ada/complete.exp: complete p not_in_sco
 PASS: gdb.ada/complete.exp: complete p pck.ins
 PASS: gdb.ada/complete.exp: complete p pck.my
 PASS: gdb.ada/complete.exp: complete p pck.inne
 PASS: gdb.ada/complete.exp: complete p pck.inner.
 PASS: gdb.ada/complete.exp: complete p local_ident
 PASS: gdb.ada/complete.exp: complete p pck.local_ident
 PASS: gdb.ada/complete.exp: complete p pck__local_ident
 PASS: gdb.ada/complete.exp: complete p external_ident
 PASS: gdb.ada/complete.exp: complete p pck
 PASS: gdb.ada/complete.exp: complete p pck.
 PASS: gdb.ada/complete.exp: complete p <pck__my
 PASS: gdb.ada/complete.exp: interactive complete 'print some'
 PASS: gdb.ada/complete.exp: complete p ambig
 PASS: gdb.ada/complete.exp: complete p ambiguous_f
 PASS: gdb.ada/complete.exp: complete p ambiguous_func
 PASS: gdb.ada/complete.exp: set max-completions unlimited
 PASS: gdb.ada/complete.exp: complete break ada

... the squashed testsuite/gdb.sum ended up with those tests above
sorted lexically:

 PASS: gdb.ada/complete.exp: compilation foo.adb
 PASS: gdb.ada/complete.exp: complete break ada
 PASS: gdb.ada/complete.exp: complete p <Exported
 PASS: gdb.ada/complete.exp: complete p <__gnat_ada_main_prog
 PASS: gdb.ada/complete.exp: complete p <pck__my
 PASS: gdb.ada/complete.exp: complete p __gnat_ada_main_progra
 PASS: gdb.ada/complete.exp: complete p ambig
 PASS: gdb.ada/complete.exp: complete p ambiguous_f
 PASS: gdb.ada/complete.exp: complete p ambiguous_func
 PASS: gdb.ada/complete.exp: complete p exported
 PASS: gdb.ada/complete.exp: complete p external_ident
 PASS: gdb.ada/complete.exp: complete p inner.insi
 PASS: gdb.ada/complete.exp: complete p insi
 PASS: gdb.ada/complete.exp: complete p local_ident
 PASS: gdb.ada/complete.exp: complete p my_glob
 PASS: gdb.ada/complete.exp: complete p not_in_sco
 PASS: gdb.ada/complete.exp: complete p pck
 PASS: gdb.ada/complete.exp: complete p pck.
 PASS: gdb.ada/complete.exp: complete p pck.inne
 PASS: gdb.ada/complete.exp: complete p pck.inne
 PASS: gdb.ada/complete.exp: complete p pck.inner.
 PASS: gdb.ada/complete.exp: complete p pck.inner.ins
 PASS: gdb.ada/complete.exp: complete p pck.ins
 PASS: gdb.ada/complete.exp: complete p pck.local_ident
 PASS: gdb.ada/complete.exp: complete p pck.my
 PASS: gdb.ada/complete.exp: complete p pck__inner__ins
 PASS: gdb.ada/complete.exp: complete p pck__local_ident
 PASS: gdb.ada/complete.exp: complete p side
 PASS: gdb.ada/complete.exp: complete p some
 PASS: gdb.ada/complete.exp: interactive complete 'print some'
 PASS: gdb.ada/complete.exp: p <Exported_Capitalized>
 PASS: gdb.ada/complete.exp: p Exported_Capitalized
 PASS: gdb.ada/complete.exp: p exported_capitalized
 PASS: gdb.ada/complete.exp: set max-completions unlimited

... which is clearly incorrect.

So you won't see the problem if you compare test results of
two runs that both postdate the dg-extract-results update,
and if they're both run in parallel mode.  I assume the problem
is visible if you compare a parallel mode run against
a serial mode run, since the latter won't sort.

Is this something that can be easily fixed?

Thanks,
Pedro Alves

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

end of thread, other threads:[~2018-10-01  9:36 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-20 11:02 Update dg-extract-results.* from gcc Rainer Orth
2018-07-25 19:08 ` Tom Tromey
2018-07-26 20:54   ` Sergio Durigan Junior
2018-07-31 12:46     ` Rainer Orth
2018-07-31 12:44   ` Rainer Orth
2018-08-06 13:50     ` Rainer Orth
2018-08-07 11:52     ` Rainer Orth
2018-08-07 14:35 ` Pedro Alves
2018-08-08 14:36   ` Rainer Orth
2018-08-08 15:24     ` Pedro Alves
2018-10-01  9:36       ` dg-extract-results's bad sorting behavior (Re: Update dg-extract-results.* from gcc) Pedro Alves
2018-09-11 11:02 ` [obv] Fix dg-extract-results.sh path [Re: Update dg-extract-results.* from gcc] Jan Kratochvil
2018-09-11 11:03 ` Missing toplevel contrib/ in gdb-*.tar.xz " Jan Kratochvil
2018-09-11 11:20   ` Rainer Orth
2018-09-11 12:01     ` Joel Brobecker
2018-09-12  5:21       ` [PATCH] Add "contrib" to the list of GDB support dirs (on src-release.sh) Sergio Durigan Junior
2018-09-13 14:26         ` Tom Tromey
2018-09-13 16:35           ` Sergio Durigan Junior
2018-09-12  5:23       ` Missing toplevel contrib/ in gdb-*.tar.xz [Re: Update dg-extract-results.* from gcc] Sergio Durigan Junior

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).