From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12191 invoked by alias); 29 May 2013 16:24:41 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 12165 invoked by uid 89); 29 May 2013 16:24:39 -0000 X-Spam-SWARE-Status: No, score=-7.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Wed, 29 May 2013 16:24:38 +0000 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r4TGOawO007195 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 29 May 2013 12:24:36 -0400 Received: from brno.lan (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id r4TGOZA6006551 for ; Wed, 29 May 2013 12:24:36 -0400 Subject: [PATCH 00/22] [GDBserver] Multi-process + multi-arch To: gdb-patches@sourceware.org From: Pedro Alves Date: Wed, 29 May 2013 16:24:00 -0000 Message-ID: <20130529162434.24586.5697.stgit@brno.lan> User-Agent: StGit/0.16 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-SW-Source: 2013-05/txt/msg01001.txt.bz2 This is a rebase of the series originaly posted at , over a year ago (!). Meanwhile, the GDB patch has gone in, at . GDB is now prepared to handle the case of debugging programs of different architectures (gdbarch's) simultaneously. However, GDBserver still isn't. 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). The previous time I had posted this, I had tested all that I could find a machine to test on. GDBserver hasn't changed that much since, and most patches applied cleanly, so I skipped the very time consuming retesting of non-x86 ports this time. I re-checked things still build with a set of cross compilers though. A few archs were cross-compile tested only even back then (for I have no access to some archs), and a few were not tested at all, so it's quite possible that I broke them. We're still early enough in the release cycle that I'm not much concerned with port breakage, as any necessary fix should be trivial. The first patch does the core work, and adjusts the GNU/Linux x86/x86_64 port to interface changes. The build is then broken for all other ports after patch 1. All the subsequent patches then 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. The x86 port was the one that had the most conflicts when rebasing to current mainline. I ended up doing things a little bit differently here and there. Since I last posted this, GDBserver gained a few new ports -- Nios2, Aarch64 and TILE-Gx. I've adjusted them too now. I plan to push this in soon, before yet another port comes along. :-) For convenience, the whole series is also found at or git://github.com/palves/gdb.git multi-process-multi-arch-v2 --- Pedro Alves (22): [GDBserver] Multi-process + multi-arch: core + GNU/Linux x86* [GDBserver] Multi-process + multi-arch: GNU/Linux IA64 [GDBserver] Multi-process + multi-arch: GNU/Linux SPARC [GDBserver] Multi-process + multi-arch: GNU/Linux PowerPC [GDBserver] Multi-process + multi-arch: GNU/Linux S/390 [GDBserver] Multi-process + multi-arch: GNU/Linux MIPS [GDBserver] Multi-process + multi-arch: GNU/Linux ARM [GDBserver] Multi-process + multi-arch: GNU/Linux m68k [GDBserver] Multi-process + multi-arch: GNU/Linux SH [GDBserver] Multi-process + multi-arch: GNU/Linux Blackfin [GDBserver] Multi-process + multi-arch: GNU/Linux CRIS [GDBserver] Multi-process + multi-arch: GNU/Linux CRISv32 [GDBserver] Multi-process + multi-arch: GNU/Linux M32R [GDBserver] Multi-process + multi-arch: GNU/Linux TI C6x [GDBserver] Multi-process + multi-arch: GNU/Linux Xtensa [GDBserver] Multi-process + multi-arch: GNU/Linux Nios 2 [GDBserver] Multi-process + multi-arch: GNU/Linux Aarch64 [GDBserver] Multi-process + multi-arch: GNU/Linux TILE-Gx [GDBserver] Multi-process + multi-arch: SPU [GDBserver] Multi-process + multi-arch: Windows [GDBserver] Multi-process + multi-arch: LynxOS [GDBserver] Multi-process + multi-arch: QNX NTO gdb/gdbserver/Makefile.in | 8 - 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-aarch64-low.c | 43 +++- 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 | 52 ++++ gdb/gdbserver/linux-i386-ipa.c | 4 gdb/gdbserver/linux-ia64-low.c | 44 +++- gdb/gdbserver/linux-low.c | 217 ++++++++++-------- gdb/gdbserver/linux-low.h | 72 +++++- gdb/gdbserver/linux-m32r-low.c | 37 +++ gdb/gdbserver/linux-m68k-low.c | 50 ++++ gdb/gdbserver/linux-mips-low.c | 191 +++++++++++----- gdb/gdbserver/linux-nios2-low.c | 43 +++- 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-tile-low.c | 47 +++- gdb/gdbserver/linux-x86-low.c | 450 ++++++++++++++++++++++++------------- gdb/gdbserver/linux-xtensa-low.c | 61 ++++- gdb/gdbserver/lynx-i386-low.c | 2 gdb/gdbserver/lynx-low.c | 3 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 | 235 +++++++++++-------- gdb/gdbserver/regcache.h | 33 ++- gdb/gdbserver/remote-utils.c | 9 - gdb/gdbserver/server.c | 25 +- gdb/gdbserver/server.h | 6 gdb/gdbserver/spu-low.c | 10 + gdb/gdbserver/tdesc.c | 66 +++++ gdb/gdbserver/tdesc.h | 64 +++++ gdb/gdbserver/tracepoint.c | 35 ++- 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 48 files changed, 1924 insertions(+), 696 deletions(-) create mode 100644 gdb/gdbserver/tdesc.c create mode 100644 gdb/gdbserver/tdesc.h -- Signature