Binutils with MCST patches
Go to file
Andrew Burgess 67943c005f gdb: Fix instability in thread groups test
In the test script gdb.mi/list-thread-groups-available.exp we ask GDB
to list all thread groups, and match the output against a
regexp. Occasionally, I would see this test fail.

The expected output is a list of entries, each entry looking roughly
like this:

  {id="<DECIMAL>",type="process",description="<STRING>",
   user="<STRING>",cores=["<DECIMAL>","<DECIMAL>",...]}

All the fields after 'id' and 'type' are optional, and the 'cores'
list can contain 1 or more "<DECIMAL>" entries.

On my machine (Running Fedora 27, kernel 4.17.3-100.fc27.x86_64)
usually the 'description' is a non-empty string, and the 'cores' list
has at least one entry in it.  But sometimes, very rarely, I'll see an
entry in the process group list where the 'description' is an empty
string, the 'user' is the string "?", and the 'cores' list is empty.
Such an entry looks like this:

   {id="19863",type="process",description="",user="?",cores=[]}

I believe that this is caused by the process exiting while GDB is
scanning /proc for process information.  The current code in
gdb/nat/linux-osdata.c is not (I think) resilient against exiting
processes.

This commit adjusts the regex that matches the 'cores' list so that an
empty list is acceptable, with this patch in place the test script
gdb.mi/list-thread-groups-available.exp never fails for me now.

I've only adjusted the cores regexp for the occasion when we have GDB
read information about all processes, its only in this case that we
might encounter an exiting process.  When we read information about
two known PIDs, that we know will not exit for the duration of the
test, we require that the core list be non-empty.

gdb/testsuite/ChangeLog:

	* gdb.mi/list-thread-groups-available.exp: Update test regexp.
2018-08-14 13:38:51 +01:00
bfd Automatic date update in version.in 2018-08-14 00:00:28 +00:00
binutils Always use align_size as pr_datasz for GNU_PROPERTY_STACK_SIZE 2018-08-10 08:14:24 -07:00
config Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
contrib Update dg-extract-results.* from gcc 2018-08-06 16:05:16 +02:00
cpu PR23430, Indices misspelled 2018-07-24 19:58:12 +09:30
elfcpp [GOLD] PowerPC .gnu.attributes support 2018-07-06 15:18:51 +09:30
etc Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
gas When the assembler reports that the input and output are the same, report the file names involved, in order to help debugging. Also do not equate two files are the same if the have the same inode value but reside on different file systems. 2018-08-14 12:22:35 +01:00
gdb gdb: Fix instability in thread groups test 2018-08-14 13:38:51 +01:00
gold Fix "may be used uninitialized" warning. 2018-08-07 22:40:33 -07:00
gprof Fix use of "command line X" in binutils doc 2018-07-02 11:18:24 +01:00
include arm - Add some comments about the versions of ARM ELF that define various e_flags values 2018-08-09 16:51:09 +01:00
intl Backport gettext fixes to get rid of warnings on macOS 2018-08-02 14:56:02 -04:00
ld ld-x86-64/pr23486b.d: Swap pr23486a.s and pr23486a.s 2018-08-12 05:39:00 -07:00
libdecnumber Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
libiberty Copy from GCC: Add linker_output as prefix for LTO temps (PR lto/86548). 2018-08-01 14:23:10 +01:00
opcodes x86: Add CpuCMOV and CpuFXSR 2018-08-11 14:37:32 -07:00
readline Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
sim Update my e-mail address, limit maintenance to MIPS I-IV ISAs 2018-07-21 00:14:01 +01:00
texinfo
zlib Regen doc/Makefile.in 2018-06-21 23:00:05 +09:30
.cvsignore
.gitattributes
.gitignore Add archives and make stamps to the .gitignore file. 2016-09-27 15:10:42 +01:00
COPYING
COPYING.LIB
COPYING.LIBGLOSS Update the address of the FSF in the copyright notice of files which were using the old address. 2017-12-14 12:48:55 +00:00
COPYING.NEWLIB
COPYING3
COPYING3.LIB
ChangeLog Update the src-release script to include the new top level files test-driver and ar-lib. 2018-07-16 14:10:35 +01:00
MAINTAINERS
Makefile.def This was already applied on the GCC side. 2018-06-19 00:05:40 +02:00
Makefile.in Introduce @unless/@endunless and postbootstrap Makefile targets 2018-06-29 23:49:28 -03:00
Makefile.tpl Introduce @unless/@endunless and postbootstrap Makefile targets 2018-06-29 23:49:28 -03:00
README
README-maintainer-mode Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
ar-lib Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
compile Update from upstream Automake 2014-11-16 13:43:48 +01:00
config-ml.in Update top level configure files by synchronizing them with gcc. 2018-01-10 15:29:21 +00:00
config.guess Update config.guess and config.sub 2018-07-05 13:35:19 +02:00
config.rpath
config.sub Update config.sub 2018-07-06 08:23:40 +02:00
configure Introduce @unless/@endunless and postbootstrap Makefile targets 2018-06-29 23:49:28 -03:00
configure.ac Introduce @unless/@endunless and postbootstrap Makefile targets 2018-06-29 23:49:28 -03:00
depcomp Update from upstream Automake 2014-11-16 13:43:48 +01:00
djunpack.bat
install-sh Update from upstream Automake 2014-11-16 13:43:48 +01:00
libtool.m4 Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
makefile.vms
missing Update from upstream Automake 2014-11-16 13:43:48 +01:00
mkdep
mkinstalldirs Update from upstream Automake 2014-11-16 13:43:48 +01:00
move-if-change Update `move-if-change' from gnulib 2014-11-16 17:04:02 +01:00
setup.com
src-release.sh Update the src-release script to include the new top level files test-driver and ar-lib. 2018-07-16 14:10:35 +01:00
symlink-tree
test-driver Bump to autoconf 2.69 and automake 1.15.1 2018-06-19 16:55:06 -04:00
ylwrap Update from upstream Automake 2014-11-16 13:43:48 +01:00

README

		   README for GNU development tools

This directory contains various GNU compilers, assemblers, linkers, 
debuggers, etc., plus their support routines, definitions, and documentation.

If you are receiving this as part of a GDB release, see the file gdb/README.
If with a binutils release, see binutils/README;  if with a libg++ release,
see libg++/README, etc.  That'll give you info about this
package -- supported targets, how to use it, how to report bugs, etc.

It is now possible to automatically configure and build a variety of
tools with one command.  To build all of the tools contained herein,
run the ``configure'' script here, e.g.:

	./configure 
	make

To install them (by default in /usr/local/bin, /usr/local/lib, etc),
then do:
	make install

(If the configure script can't determine your type of computer, give it
the name as an argument, for instance ``./configure sun4''.  You can
use the script ``config.sub'' to test whether a name is recognized; if
it is, config.sub translates it to a triplet specifying CPU, vendor,
and OS.)

If you have more than one compiler on your system, it is often best to
explicitly set CC in the environment before running configure, and to
also set CC when running make.  For example (assuming sh/bash/ksh):

	CC=gcc ./configure
	make

A similar example using csh:

	setenv CC gcc
	./configure
	make

Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc.  See the file COPYING or
COPYING.LIB in the various directories, for a description of the
GNU General Public License terms under which you can copy the files.

REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
on where and how to report problems.