This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 0/8] [AArch64] Support fast tracepoints
- From: Pierre Langlois <pierre dot langlois at arm dot com>
- To: gdb-patches at sourceware dot org
- Cc: Pierre Langlois <pierre dot langlois at arm dot com>
- Date: Mon, 14 Sep 2015 12:31:14 +0100
- Subject: [PATCH 0/8] [AArch64] Support fast tracepoints
- Authentication-results: sourceware.org; auth=none
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 implements
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
--
2.4.6