This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 00/11] Displaced stepping on AArch64 GNU/Linux
- From: Yao Qi <qiyaoltc at gmail dot com>
- To: gdb-patches at sourceware dot org
- Date: Wed, 7 Oct 2015 10:26:14 +0100
- Subject: [PATCH 00/11] Displaced stepping on AArch64 GNU/Linux
- Authentication-results: sourceware.org; auth=none
This patch series adds displaced stepping on aarch64-linux. The
series refactors and reuses some aarch64 fast tracepoint instruction
relocation code in GDBserver, because both of fast tracepoint and
displaced stepping need to handle instruction relocation.
Patches #2 - #4 are about refactoring aarch64_relocate_instruction in
GDBserver in order to share it between GDB and GDBserver. A visitor
pattern is used, and aarch64_relocate_instruction decodes instructions
and visits different instructions by different methods of visitor.
See more details in patch #4. Patch #5 moves all visitor pattern stuff
and aarch64_relocate_instruction to arch/aarch64-insn.c, and patch #6
adds the displaced stepping support.
Patch #8 adds a new test case gdb.arch/disp-step-insn-reloc.exp which
uses insn-reloc.c too for displaced stepping. Patch #9 and #10 add
"aarch64_" prefix to function names, as a clean up of this series.
The whole series is regression tested on aarch64-linux, both native and
gdbserver.
*** BLURB HERE ***
Yao Qi (11):
More tests in gdb.arch/insn-reloc.c
Move target_read_uint32 out of aarch64_relocate_instruction
Move append_insns out of aarch64_relocate_instruction
Use visitor in aarch64_relocate_instruction
Move aarch64_relocate_instruction to arch/aarch64-insn.c
Support displaced stepping in aarch64-linux
Support displaced stepping in support_displaced_stepping for
aarch64*-*-linux*
New test case gdb.arch/disp-step-insn-reloc.exp
Rename emit_insn to aarch64_emit_insn
Rename emit_load_store to aarch64_emit_load_store
Mention the change in NEWS
gdb/NEWS | 2 +
gdb/aarch64-linux-tdep.c | 12 +
gdb/aarch64-tdep.c | 337 ++++++++++
gdb/aarch64-tdep.h | 17 +
gdb/arch/aarch64-insn.c | 152 +++++
gdb/arch/aarch64-insn.h | 282 ++++++++
gdb/gdbserver/linux-aarch64-low.c | 824 ++++++++----------------
gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp | 84 +++
gdb/testsuite/gdb.arch/insn-reloc.c | 50 +-
gdb/testsuite/lib/gdb.exp | 3 +-
10 files changed, 1190 insertions(+), 573 deletions(-)
create mode 100644 gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp
--
1.9.1