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/11] Displaced stepping on AArch64 GNU/Linux


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


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