Andreas Arnez
7edb9bd32b
S390: Enable re-attaching with native-extended-gdbserver
On s390x, when running attach.exp with native-extended-gdbserver, gdbserver crashes in find_regno like this: .../regcache.c:252: A problem internal to GDBserver has been detected. Unknown register tdb0 requested On the GDB side it looks like this: (gdb) attach 31568 Attaching to process 31568 Remote connection closed The test case attempts to attach to a new process via the already running gdbserver. Thus s390_arch_setup is called a second time, and that's where the problem occurs. In order to determine the word width (32 or 64 bits), s390_arch_setup reads the pswm register through the regcache. For that it uses a temporary tdesc which is supposed to work for all s390 targets, since the actual tdesc has not been determined yet. But in this second round this doesn't work, because s390_regsets has been updated already and now contains regsets not described by the temporary tdesc, such as the one containing tdb0. This is fixed by rearranging the logic in s390_arch_setup. gdb/gdbserver/ChangeLog: * linux-s390-low.c (s390_get_hwcap): Replace tdesc parameter by the word size. Add comment. (s390_get_wordsize): New function. (s390_arch_setup): No longer select a temporary tdesc to fetch the pswm with it. Instead, use s390_get_wordsize to determine the word size first and derive the correct tdesc from that directly.
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
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.
Description
Languages
C
52.1%
Makefile
22.5%
Assembly
12.2%
C++
6.2%
Roff
1.1%
Other
5.3%