Binutils with MCST patches
Go to file
Joel Brobecker b8d088acc8 Avoid switch to invalid ptid during Ada task switch.
This is to prevent an internal error during an Ada task switch. A task
switch is simply a thread switch under the hood. What we do is collect
the info from the Ada Task Control Block, deduce the associated thread
ptid, and then switch to that thread.  If the thread ptid computation
routine has not been implemented for the target, of if there is a bug,
then we end up computing a bogus ptid which GDB does not know about,
which eventually leads to an assertion failure:

    (gdb) task 1
    [New Thread 5715]
    /[...]/gdb/thread.c:595: internal-error: is_thread_state:
     Assertion `tp' failed.
    A problem internal to GDB has been detected,
    further debugging may prove unreliable.
    Quit this debugging session? (y or n)

When this happens, it's just nicer for the user to print an error
message, and cancel the task switch. After this patch is applied,
this is what we get:

    (gdb) task 1
    [New Thread 10250]
    Unable to compute thread ID for task 1.
    Cannot switch to this task.

gdb/ChangeLog:

        * ada-tasks.c (task_command_1): Check that the task ptid is valid
        before doing the associated thread switch.
2010-03-16 18:47:15 +00:00
bfd * elf64-ppc.c (struct ppc_link_hash_table): Add do_toc_opt. 2010-03-16 00:40:36 +00:00
binutils * MAINTAINERS: Update my email address. List Tristan Gingold 2010-03-16 14:02:44 +00:00
config Sync from gcc mainline. 2010-02-15 10:37:55 +00:00
cpu * m32r.cpu (HASH-PREFIX): Delete. 2010-02-12 04:38:21 +00:00
elfcpp include: 2010-03-05 21:04:59 +00:00
etc
gas 2010-03-15 Thomas Schwinge <thomas@codesourcery.com> 2010-03-15 15:11:13 +00:00
gdb Avoid switch to invalid ptid during Ada task switch. 2010-03-16 18:47:15 +00:00
gold 2010-03-15 Doug Kwan <dougkwan@google.com> 2010-03-16 01:26:15 +00:00
gprof 2010-03-16 Segher Boessenkool <segher@kernel.crashing.org> 2010-03-16 18:24:24 +00:00
include include: 2010-03-05 21:04:59 +00:00
intl
ld Add missing newline. 2010-03-16 14:18:06 +00:00
libdecnumber merge from gcc 2010-01-05 21:10:30 +00:00
libiberty merge from gcc 2010-03-15 17:33:40 +00:00
opcodes * ppc-dis.c (ppc_opts): Add PPC_OPCODE_E500MC for "e500mc64". 2010-02-25 01:00:13 +00:00
readline
sim sim: rename bool argument to avoid stdbool clash 2010-03-15 07:14:25 +00:00
texinfo
.cvsignore
ChangeLog Merge from gcc: 2010-03-14 16:00:37 +00:00
compile
config-ml.in
config.guess * config.sub, config.guess: Update from upstream sources. 2009-12-18 03:39:58 +00:00
config.rpath
config.sub * config.sub, config.guess: Update from upstream sources. 2009-12-18 03:39:58 +00:00
configure PR libstdc++/32499 2010-03-04 17:12:46 +00:00
configure.ac PR libstdc++/32499 2010-03-04 17:12:46 +00:00
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.LIBGLOSS 2009-12-17 Jeff Johnston <jjohnstn@redhat.com> 2009-12-17 21:12:49 +00:00
COPYING.NEWLIB 2009-12-17 Jeff Johnston <jjohnstn@redhat.com> 2009-12-17 21:12:49 +00:00
depcomp
djunpack.bat
install-sh
libtool.m4 Sync Libtool from GCC. 2010-01-09 21:11:44 +00:00
lt~obsolete.m4 Sync Libtool from GCC. 2010-01-09 21:11:44 +00:00
ltgcc.m4
ltmain.sh Sync Libtool from GCC. 2010-01-09 21:11:44 +00:00
ltoptions.m4 Sync Libtool from GCC. 2010-01-09 21:11:44 +00:00
ltsugar.m4
ltversion.m4 Sync Libtool from GCC. 2010-01-09 21:11:44 +00:00
MAINTAINERS
Makefile.def Merge from gcc: 2010-03-14 16:00:37 +00:00
Makefile.in Merge from gcc: 2010-03-14 16:00:37 +00:00
Makefile.tpl * Makefile.tpl: Use "-exec rm {}" rather than "-delete" to delete 2010-02-17 11:02:54 +00:00
makefile.vms
missing
mkdep
mkinstalldirs
move-if-change
README
README-maintainer-mode
setup.com
src-release
symlink-tree
ylwrap

		   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.