9d6eea3132
Currently, we associate gdbarch-related remote protocol state on a per-gdbarch data object. Things like the size of the g/G packet, and the max remote packet size. If we'll support being connected to different remote servers at the same time, then we need to cope with each having their own packet sizes, even if they are each debugging programs of the same architecture. I.e., a single instance of remote_arch_state per arch is not sufficient. This patch moves the remote_arch_state object to a map of gdbarch-to-remote_arch_state saved in the remote_state structure. Usually there will only be one entry in the map, though we may see more with stubs that support multi-process and/or archs with multiple ABIs (e.g, one remote_arch_state for 64-bit inferiors and another for 32-bit inferiors). gdb/ChangeLog: 2018-05-22 Pedro Alves <palves@redhat.com> * remote.c: Include <unordered_map>. (remote_state): Now a class. (remote_state) <get_remote_arch_state>: Declare method. <get_remote_arch_state>: New field. (remote_arch_state) <remote_arch_state>: Declare ctor. <regs>: Now a unique_ptr. (remote_gdbarch_data_handle): Delete. (get_remote_arch_state): Delete. (remote_state::get_remote_arch_state): New. (get_remote_state): Adjust to call remote_state's get_remote_arch_state method. (init_remote_state): Delete, bits factored out to ... (remote_arch_state::remote_arch_state): ... this new method. (get_remote_packet_size, get_memory_packet_size) (process_g_packet, remote_target::fetch_registers) (remote_target::prepare_to_store, store_registers_using_G) (remote_target::store_registers, remote_target::get_trace_status): Adjust to call remote_state's method. (_initialize_remote): Remove reference to remote_gdbarch_data_handle. |
||
---|---|---|
bfd | ||
binutils | ||
config | ||
cpu | ||
elfcpp | ||
etc | ||
gas | ||
gdb | ||
gold | ||
gprof | ||
include | ||
intl | ||
ld | ||
libdecnumber | ||
libiberty | ||
opcodes | ||
readline | ||
sim | ||
texinfo | ||
zlib | ||
.cvsignore | ||
.gitattributes | ||
.gitignore | ||
COPYING | ||
COPYING.LIB | ||
COPYING.LIBGLOSS | ||
COPYING.NEWLIB | ||
COPYING3 | ||
COPYING3.LIB | ||
ChangeLog | ||
MAINTAINERS | ||
Makefile.def | ||
Makefile.in | ||
Makefile.tpl | ||
README | ||
README-maintainer-mode | ||
compile | ||
config-ml.in | ||
config.guess | ||
config.rpath | ||
config.sub | ||
configure | ||
configure.ac | ||
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 | ||
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.