This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]