This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 00/20] Multi-process + multi-arch: Intro
- From: Pedro Alves <palves at redhat dot com>
- To: gdb-patches at sourceware dot org
- Date: Wed, 11 Apr 2012 00:47:42 +0100
- Subject: [PATCH 00/20] Multi-process + multi-arch: Intro
Although GDB currently supports debugging multiple inferiors
simultaneously, GDB is not prepared to handle the case of debugging
programs of different architectures (gdbarch's) simultaneously. A
simple example is debugging both a 32-bit and a 64-bit program
simultaneously on x86_64 (think following forks, and 32-bit and/or
64-bit children being spawned), though more complicated examples could
be multi-core setups with processors on the same target (e.g.,
x86_64 + ARM isn't uncommon these days).
This series aims at fixing this.
The first patch fixes native GDB. It could go in independently.
The next patch fixes GDBserver. It depends on the GDB patch. This
does the core work, but breaks the build for all ports except
GNU/Linux x86_64. All the following patches fix each port one by one.
In order to try to keep the tree building at all revisions, all
GDBserver patches will be consolidated into a single CVS commit; I've
kept them separate to ease development, testing, and review.
I'd appreciate testing of GDBserver ports I had no access to (see
individual patch descriptions/emails).
For convenience, the whole series is also found at
<https://github.com/palves/gdb/commits/multi-process-multi-arch>
or
git://github.com/palves/gdb.git multi-process-multi-arch
---
Pedro Alves (20):
Multi-process + multiarch: GDB
Multi-process + multiarch: GDBserver (and GNU/Linux x86* port)
Multi-process + multiarch: GDBserver: GNU/Linux IA64
Multi-process + multiarch: GDBserver: GNU/Linux SPARC
Multi-process + multiarch: GDBserver: GNU/Linux PowerPC
Multi-process + multiarch: GDBserver: GNU/Linux S/390
Multi-process + multiarch: GDBserver: GNU/Linux MIPS
Multi-process + multiarch: GDBserver: GNU/Linux ARM
Multi-process + multiarch: GDBserver: GNU/Linux m68k
Multi-process + multiarch: GDBserver: GNU/Linux SH
Multi-process + multiarch: GDBserver: GNU/Linux Blackfin
Multi-process + multiarch: GDBserver: GNU/Linux CRIS
Multi-process + multiarch: GDBserver: GNU/Linux CRISv32
Multi-process + multiarch: GDBserver: GNU/Linux M32R
Multi-process + multiarch: GDBserver: GNU/Linux TI C6x
Multi-process + multiarch: GDBserver: GNU/Linux Xtensa
Multi-process + multiarch: GDBserver: Windows ports
Multi-process + multiarch: GDBserver: Lynx ports
Multi-process + multiarch: GDBserver: QNX NTO port
Multi-process + multiarch: GDBserver: SPU port
gdb/gdbarch.c | 11 +
gdb/gdbarch.h | 28 +-
gdb/gdbarch.sh | 42 ++-
gdb/gdbserver/Makefile.in | 24 +-
gdb/gdbserver/ax.c | 2
gdb/gdbserver/i387-fp.c | 34 +--
gdb/gdbserver/i387-fp.h | 2
gdb/gdbserver/inferiors.c | 1
gdb/gdbserver/linux-amd64-ipa.c | 8 -
gdb/gdbserver/linux-arm-low.c | 88 +++++--
gdb/gdbserver/linux-bfin-low.c | 38 +++
gdb/gdbserver/linux-cris-low.c | 37 ++-
gdb/gdbserver/linux-crisv32-low.c | 50 +++-
gdb/gdbserver/linux-i386-ipa.c | 4
gdb/gdbserver/linux-ia64-low.c | 44 +++
gdb/gdbserver/linux-low.c | 209 +++++++++-------
gdb/gdbserver/linux-low.h | 65 ++++-
gdb/gdbserver/linux-m32r-low.c | 37 ++-
gdb/gdbserver/linux-m68k-low.c | 50 +++-
gdb/gdbserver/linux-mips-low.c | 191 ++++++++++----
gdb/gdbserver/linux-ppc-low.c | 168 +++++++++----
gdb/gdbserver/linux-s390-low.c | 187 +++++++++++---
gdb/gdbserver/linux-sh-low.c | 49 +++-
gdb/gdbserver/linux-sparc-low.c | 60 ++++
gdb/gdbserver/linux-tic6x-low.c | 74 +++++-
gdb/gdbserver/linux-x86-low.c | 428 +++++++++++++++++++++-----------
gdb/gdbserver/linux-xtensa-low.c | 61 ++++-
gdb/gdbserver/lynx-i386-low.c | 2
gdb/gdbserver/lynx-low.c | 4
gdb/gdbserver/lynx-low.h | 4
gdb/gdbserver/lynx-ppc-low.c | 2
gdb/gdbserver/nto-low.c | 6
gdb/gdbserver/nto-low.h | 6
gdb/gdbserver/nto-x86-low.c | 2
gdb/gdbserver/proc-service.c | 10 -
gdb/gdbserver/regcache.c | 244 ++++++++++--------
gdb/gdbserver/regcache.h | 33 ++
gdb/gdbserver/remote-utils.c | 9 -
gdb/gdbserver/server.c | 24 +-
gdb/gdbserver/server.h | 6
gdb/gdbserver/spu-low.c | 10 +
gdb/gdbserver/tdesc.c | 66 +++++
gdb/gdbserver/tdesc.h | 63 +++++
gdb/gdbserver/tracepoint.c | 32 +-
gdb/gdbserver/win32-arm-low.c | 11 +
gdb/gdbserver/win32-i386-low.c | 8 -
gdb/gdbserver/win32-low.c | 10 -
gdb/gdbserver/win32-low.h | 6
gdb/inferior.c | 21 ++
gdb/inferior.h | 18 +
gdb/linux-nat.c | 5
gdb/regformats/regdat.sh | 20 +
gdb/target-descriptions.c | 96 ++++++-
gdb/target-descriptions.h | 34 ++-
gdb/testsuite/gdb.multi/multi-arch.exp | 74 ++++++
55 files changed, 2099 insertions(+), 719 deletions(-)
create mode 100644 gdb/gdbserver/tdesc.c
create mode 100644 gdb/gdbserver/tdesc.h
create mode 100644 gdb/testsuite/gdb.multi/multi-arch.exp
--
Signature