Go to file
Pedro Alves afa8d396f6 fix gdbserver/linux-low'c's pending status handling
Another fix I'm working made schedlock.exp fail with gdbserver
frequently.  Looking deeper, it turns out to be a pre-existing bug.

status_pending_p_callback is filtering out LWPs incorrectly.  The
result is that that sometimes status_pending_p_callback returns a
pending event for an LWP that isn't expected, and then GDBserver gets
very confused.

E.g,. when doing a step-over, linux_wait_for_event is called with a
particular LWP's ptid, meaning events for all other LWPs should be
left pending, but here we see it retuning an event for some other LWP:

 linux_wait_1: [<all threads>]
 step_over_bkpt set [LWP 29577.29577], doing a blocking wait      <--------
 my_waitpid (-1, 0x40000001)
 my_waitpid (-1, 0x80000001): status(57f), 0
 LWFE: waitpid(-1, ...) returned 0, ERRNO-OK
 pc is 0x4007a0
 src/gdb/gdbserver/linux-low.c:2587: A problem internal to GDBserver has been detected.
 linux_wait_1: got event for 29581                                <--------

 Remote connection closed
 (gdb) FAIL: gdb.threads/schedlock.exp: continue to breakpoint: return to loop (initial)
 delete breakpoints

Tested on x86_64 Fedora 20.

gdb/gdbserver/ChangeLog:
2015-02-20  Pedro Alves  <palves@redhat.com>

	* linux-low.c (status_pending_p_callback): Use ptid_match.
2015-02-20 19:52:51 +00:00
bfd S390: Support new vector register sections 2015-02-20 10:39:53 +01:00
binutils S390: Support new vector register sections 2015-02-20 10:39:53 +01:00
config Fix --diable-shared --enable-plugins build breakage 2014-08-19 21:59:56 +09:30
cpu or1k: add missing l.msync, l.psync and l.psync instructions. 2014-07-20 20:26:09 +03:00
elfcpp [gold] Recognize DWARF5/GCC5 DW_LANG_Fortran03 and DW_LANG_Fortran08. 2015-02-17 08:08:24 +01:00
etc PR external/{16327,16328}: Remove etc/configure.texi and etc/standards.texi. 2014-06-27 11:33:25 +02:00
gas gas doc warning fixes 2015-02-19 14:14:51 +10:30
gdb fix gdbserver/linux-low'c's pending status handling 2015-02-20 19:52:51 +00:00
gold Fix gold error: hidden symbol '...' is not defined locally 2015-02-18 22:51:14 +10:30
gprof Regenerate Makeile.in file for copyright update 2015-01-02 22:27:27 +10:30
include S390: Support new vector register sections 2015-02-20 10:39:53 +01:00
intl
ld Use nm/readelf with "failif" 2015-02-19 04:45:27 -08:00
libdecnumber Another part of fixing "make TAGS". 2015-01-22 21:07:31 +02:00
libiberty strerror.c: Do not declare sys_nerr or sys_errlist if already macros 2015-01-19 16:29:07 +01:00
opcodes Wrap a few opcodes headers in extern "C" for C++ 2015-02-19 22:45:47 +00:00
readline Fix executable indicator in file name completion on Windows. 2014-12-30 21:14:25 +02:00
sim sim: drop unused headers 2015-02-20 00:16:14 -05:00
texinfo
.cvsignore
.gitattributes Add a .gitattributes file for use with git-merge-changelog 2014-07-25 18:07:23 -04:00
.gitignore
ChangeLog FT32 initial support 2015-01-28 16:25:18 +10:30
compile Update from upstream Automake 2014-11-16 13:43:48 +01:00
config-ml.in
config.guess config.sub, config.guess: Update from upstream, to 2015-01-01 version. 2015-01-02 10:40:57 +01:00
config.rpath
config.sub config.sub, config.guess: Update from upstream, to 2015-01-01 version. 2015-01-02 10:40:57 +01:00
configure FT32 initial support 2015-01-28 16:25:18 +10:30
configure.ac FT32 initial support 2015-01-28 16:25:18 +10:30
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.LIBGLOSS
COPYING.NEWLIB
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 Update libtool.m4 from GCC trunk 2014-11-24 09:14:09 -08:00
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS Update description of ownership of files in include/ 2014-11-04 16:14:14 -08:00
Makefile.def [GCC bug #63539]: libgo does not use the newly built objcopy when doing a combined build 2015-01-03 14:54:45 -08:00
Makefile.in [GCC bug #63539]: libgo does not use the newly built objcopy when doing a combined build 2015-01-03 14:54:45 -08:00
Makefile.tpl [GCC bug #63539]: libgo does not use the newly built objcopy when doing a combined build 2015-01-03 14:54:45 -08:00
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
README
README-maintainer-mode
setup.com
src-release.sh src-release.sh: configure using --target. 2014-10-15 09:50:53 +02:00
symlink-tree
ylwrap Update from upstream Automake 2014-11-16 13:43:48 +01:00

		   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.