Binutils with MCST patches
Go to file
Andreas Arnez e95a97d41a Fix watching structs in C++
Some of the watchpoint logic depends on the fact that the head of the
value chain represents the user-specified value to watch.  Thus no
additional values should be added to the value chain after that.  However,
if a watchpoint is defined for a C++ structure/class object, then run-time
type information (RTTI) may be present.  Thus, while constructing the
value chain for the watchpoint, the dynamic type is fetched by
gnuv3_rrti_type, which invokes value_addr, which then adds a new value to
the head of the value chain.  This new value represents the pointer to the
structure instead of the structure itself.

With such a "polluted" value chain the watchpoint logic does not recognize
when the user intended to watch a struct, and can_use_hardware_watchpoint
returns zero.  Instead of a hardware watchpoint, a software watchpoint
will then be set for no apparent reason.

This is fixed by adding an early exit to gnuv3_rtti_type when the input
value is not a dynamic class object.

gdb/testsuite/ChangeLog:

	* gdb.cp/watch-cp.cc: New test.
	* gdb.cp/watch-cp.exp: New file.

gdb/ChangeLog:

	* gnu-v3-abi.c (gnuv3_rtti_type): Add early exit if the given
	value is not a dynamic class object.
2018-03-07 14:29:19 +01:00
bfd mips64 rtype_to_howto error status 2018-03-07 16:56:31 +10:30
binutils XCOFF disassembler 2018-03-07 16:56:39 +10:30
config Fix PR ld/22263 on SPARC. 2018-02-06 18:17:39 +01:00
cpu opcodes error messages 2018-03-03 11:34:26 +10:30
elfcpp Add note about 2.30 branch creation to changelogs 2018-01-13 13:26:38 +00:00
etc Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
gas x86: Rewrite NOP generation for fill and alignment 2018-03-07 04:18:56 -08:00
gdb Fix watching structs in C++ 2018-03-07 14:29:19 +01:00
gold New plugin interface to get list of symbols wrapped with --wrap option. 2018-02-22 13:56:46 -08:00
gprof Add missing translations to ALL_LINGUAS 2018-03-01 09:17:02 +10:30
include [ARM] Remove ARM_FEATURE_COPY macro 2018-02-27 16:40:45 +00:00
intl Require ngettext in test of system gettext implementation 2017-11-07 15:56:44 +10:30
ld RISC-V: Disallow output format changes. 2018-03-06 12:01:50 -08:00
libdecnumber
libiberty Avoid compilation warning in libiberty/simple-object-xcoff.c 2018-01-27 18:25:06 +02:00
opcodes XCOFF disassembler 2018-03-07 16:56:39 +10:30
readline Avoid MinGW compilation warning in readline/input.c 2017-05-19 11:05:59 +03:00
sim MAINTAINERS: Update my company e-mail address 2018-01-22 15:39:18 +00:00
texinfo
zlib Sync ZLIB with FSF GCC sources, bringing in version 1.2.11. 2017-02-20 12:52:22 +00:00
.cvsignore
.gitattributes
.gitignore
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 WebAssembly: Disable subdirectory configuration for unsupported LD 2018-02-13 12:56:29 +00:00
MAINTAINERS
Makefile.def Sync top-level make and configure files with FSF GCC mainline versions. 2017-01-23 11:55:48 +00:00
Makefile.in Sync top-level make and configure files with FSF GCC mainline versions. 2017-01-23 11:55:48 +00:00
Makefile.tpl Sync top-level make and configure files with FSF GCC mainline versions. 2017-01-23 11:55:48 +00:00
README
README-maintainer-mode
compile
config-ml.in Update top level configure files by synchronizing them with gcc. 2018-01-10 15:29:21 +00:00
config.guess Update top level configure files by synchronizing them with gcc. 2018-01-10 15:29:21 +00:00
config.rpath
config.sub Update top level configure files by synchronizing them with gcc. 2018-01-10 15:29:21 +00:00
configure WebAssembly: Disable subdirectory configuration for unsupported LD 2018-02-13 12:56:29 +00:00
configure.ac WebAssembly: Disable subdirectory configuration for unsupported LD 2018-02-13 12:56:29 +00:00
depcomp
djunpack.bat
install-sh
libtool.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
lt~obsolete.m4
makefile.vms
missing
mkdep
mkinstalldirs
move-if-change
setup.com
src-release.sh Improve junk file removal in source tarball creation script. 2018-01-30 17:48:24 +00:00
symlink-tree
ylwrap

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.