From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 52603 invoked by alias); 14 Sep 2015 11:31:33 -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 52569 invoked by uid 89); 14 Sep 2015 11:31:31 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,SPF_PASS autolearn=ham version=3.3.2 X-HELO: eu-smtp-delivery-143.mimecast.com Received: from eu-smtp-delivery-143.mimecast.com (HELO eu-smtp-delivery-143.mimecast.com) (207.82.80.143) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 14 Sep 2015 11:31:29 +0000 Received: from cam-owa1.Emea.Arm.com (fw-tnat.cambridge.arm.com [217.140.96.140]) by eu-smtp-1.mimecast.com with ESMTP id uk-mta-38-gqqskiyZQ2i3ANDo3oj_Wg-1; Mon, 14 Sep 2015 12:31:24 +0100 Received: from e105615-lin.cambridge.arm.com ([10.1.2.79]) by cam-owa1.Emea.Arm.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 14 Sep 2015 12:31:24 +0100 From: Pierre Langlois To: gdb-patches@sourceware.org Cc: Pierre Langlois Subject: [PATCH 0/8] [AArch64] Support fast tracepoints Date: Mon, 14 Sep 2015 11:31:00 -0000 Message-Id: <1442230282-20751-1-git-send-email-pierre.langlois@arm.com> X-MC-Unique: gqqskiyZQ2i3ANDo3oj_Wg-1 Content-Type: text/plain; charset=WINDOWS-1252 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2015-09/txt/msg00274.txt.bz2 Hi all, This series of patches add support for fast tracepoints on aarch64-linux. They are on top of https://sourceware.org/ml/gdb-patches/2015-09/msg00239.html. With this implementation, a tracepoint can only be placed in a +/- 128MB range of the jump pad. This is due to the unconditional branch instruction being limited to a (26 bit << 2) offset from the current PC. Patches #1 to #3 are AArch64 specific preparations. The idea is that some architecture specific code can be shared between GDB and GDBserver. Specifically, the decoding of some instructions is needed in GDB when scanning the prologue and in GDBserver when relocating a PC relative instruction. The implementation of fast tracepoints is in patch #4 and patch #5 implemen= ts native compilation of agent expressions. Finally, the last patches enables some tests and add new ones. The patches were tested on aarch64-linux in a remote configuration. All fast tracepoint tests are now enabled with no new failures. The new test cases were also tested on x86_64 and i386 with native-gdbserver. Thanks, Pierre Pierre Langlois (8): [AArch64] Use debug_printf instead of fprintf_unfiltered [AArch64] Move instruction decoding into new arch/ directory [AArch64] Make aarch64_decode_adrp handle both ADR and ADRP instructions [GDBserver][AArch64] Add support for fast tracepoints [GDBserver][AArch64] Implement target_emit_ops [testsuite][AArch64] Enable fast tracepoint tests [testsuite] Add a gdb.trace test for instruction relocation [testsuite] Add a test case for fast tracepoints' locking mechanism gdb/Makefile.in | 13 +- gdb/aarch64-tdep.c | 394 +--- gdb/arch/aarch64-insn.c | 227 +++ gdb/arch/aarch64-insn.h | 39 + gdb/configure.tgt | 4 +- gdb/gdbserver/Makefile.in | 12 + gdb/gdbserver/configure.srv | 3 +- gdb/gdbserver/linux-aarch64-ipa.c | 141 ++ gdb/gdbserver/linux-aarch64-low.c | 2667 +++++++++++++++++++++= +++- gdb/testsuite/gdb.trace/change-loc.h | 2 + gdb/testsuite/gdb.trace/ftrace-insn-reloc.c | 508 +++++ gdb/testsuite/gdb.trace/ftrace-insn-reloc.exp | 114 ++ gdb/testsuite/gdb.trace/ftrace-lock.c | 106 + gdb/testsuite/gdb.trace/ftrace-lock.exp | 95 + gdb/testsuite/gdb.trace/ftrace.c | 2 + gdb/testsuite/gdb.trace/ftrace.exp | 2 +- gdb/testsuite/gdb.trace/pendshr1.c | 2 + gdb/testsuite/gdb.trace/pendshr2.c | 2 + gdb/testsuite/gdb.trace/range-stepping.c | 2 + gdb/testsuite/gdb.trace/trace-break.c | 4 + gdb/testsuite/gdb.trace/trace-condition.c | 2 + gdb/testsuite/gdb.trace/trace-condition.exp | 2 + gdb/testsuite/gdb.trace/trace-mt.c | 2 + 23 files changed, 4048 insertions(+), 297 deletions(-) create mode 100644 gdb/arch/aarch64-insn.c create mode 100644 gdb/arch/aarch64-insn.h create mode 100644 gdb/gdbserver/linux-aarch64-ipa.c create mode 100644 gdb/testsuite/gdb.trace/ftrace-insn-reloc.c create mode 100644 gdb/testsuite/gdb.trace/ftrace-insn-reloc.exp create mode 100644 gdb/testsuite/gdb.trace/ftrace-lock.c create mode 100644 gdb/testsuite/gdb.trace/ftrace-lock.exp --=20 2.4.6