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 v9 00/29] record-btrace: reverse


This is a bigger update addressing Pedro's feedback.

I discarded my frame_id changes and instead use Pedro's unavailable stack
changes.  See "frame: add frame_id_build_unavailable_stack_special".

The v8 "record-btrace: provide xfer_partial target method" patch did not
have any effect since the caller would simply continue with the target
beneath.  I changed this to now throw an error if memory is not available.
To avoid issues with GDB trying to insert and remove breakpoints, this is
disabled for the duration of to_insert_breakoint and to_remove_breakpoint.

This needs a preparation patch "target, breakpoint: allow insert/remove
breakpoint to be forwarded" to allow ther espective target methods to be
forwarded.

I added a test covering the error on memory accesses to "record-btrace:
add (reverse-)stepping support".

The "frame, backtrace: allow targets to supply a frame unwinder" patch
has been split resulting in new patches "frame, cfa: check unwind stop
reason first" and "frame: do not assume unwinding will succeed".

A new patch "target: allow decr_pc_after_break to be defined by the target"
has been added to prepare for avoiding pc adjustments after break during
replay in "record-btrace: add (reverse-)stepping support".

This should also apply to the s/w record target but the condition under
which the pc needs to be adjusted is more complicated, here.

In "gdbarch: add instruction predicate methods" I added "::0" to the new
items I added to gdbarch.sh to fix an issue with verify_gdbarch.

There are lots of changes to all tests throughout the series plus a new
patch "btrace, test: fix multi-line btrace tests" to fix up existing tests.


Markus Metzger (29):
  btrace, test: fix multi-line btrace tests
  btrace, linux: fix memory leak when reading branch trace
  btrace: uppercase btrace_read_type
  gdbarch: add instruction predicate methods
  frame:  add frame_is_tailcall function
  frame: add frame_id_build_unavailable_stack_special
  btrace: change branch trace data structure
  record-btrace: fix insn range in function call history
  record-btrace: start counting at one
  btrace: increase buffer size
  record-btrace: optionally indent function call history
  record-btrace: make ranges include begin and end
  btrace: add replay position to btrace thread info
  target: add ops parameter to to_prepare_to_store method
  record-btrace: supply register target methods
  frame, backtrace: allow targets to supply a frame unwinder
  frame, cfa: check unwind stop reason first
  frame: do not assume unwinding will succeed
  record-btrace, frame: supply target-specific unwinder
  target, breakpoint: allow insert/remove breakpoint to be forwarded
  record-btrace: provide xfer_partial target method
  record-btrace: add to_wait and to_resume target methods.
  record-btrace: provide target_find_new_threads method
  record-btrace: add record goto target methods
  record-btrace: extend unwinder
  btrace, gdbserver: read branch trace incrementally
  record-btrace: show trace from enable location
  target: allow decr_pc_after_break to be defined by the target
  record-btrace: add (reverse-)stepping support

 gdb/NEWS                                           |   25 +
 gdb/aix-thread.c                                   |    2 +-
 gdb/amd64-linux-nat.c                              |    6 +-
 gdb/amd64-tdep.c                                   |   67 +
 gdb/arch-utils.c                                   |   15 +
 gdb/arch-utils.h                                   |    4 +
 gdb/btrace.c                                       | 1616 +++++++++++++++----
 gdb/btrace.h                                       |  269 +++-
 gdb/common/btrace-common.h                         |   29 +-
 gdb/common/linux-btrace.c                          |  125 +-
 gdb/common/linux-btrace.h                          |   15 +-
 gdb/corelow.c                                      |    3 +-
 gdb/darwin-nat.c                                   |    4 +-
 gdb/doc/gdb.texinfo                                |   32 +-
 gdb/dwarf2-frame-tailcall.c                        |    4 +-
 gdb/dwarf2-frame.c                                 |   14 +-
 gdb/exec.c                                         |    3 +-
 gdb/frame-unwind.c                                 |   86 +-
 gdb/frame.c                                        |   48 +-
 gdb/frame.h                                        |   14 +-
 gdb/gdbarch.c                                      |   72 +
 gdb/gdbarch.h                                      |   18 +
 gdb/gdbarch.sh                                     |    9 +
 gdb/gdbserver/linux-low.c                          |   36 +-
 gdb/gdbserver/server.c                             |   15 +-
 gdb/gdbserver/target.h                             |    9 +-
 gdb/i386-linux-nat.c                               |    6 +-
 gdb/i386-tdep.c                                    |   59 +
 gdb/inf-child.c                                    |    2 +-
 gdb/infcmd.c                                       |    6 +-
 gdb/infrun.c                                       |    9 +-
 gdb/linux-nat.c                                    |    4 +-
 gdb/linux-thread-db.c                              |    2 +-
 gdb/mem-break.c                                    |    4 +-
 gdb/monitor.c                                      |    6 +-
 gdb/nto-procfs.c                                   |    4 +-
 gdb/ravenscar-thread.c                             |    7 +-
 gdb/record-btrace.c                                | 1642 +++++++++++++++++---
 gdb/record-full.c                                  |   37 +-
 gdb/record.c                                       |    4 +
 gdb/record.h                                       |    7 +
 gdb/remote-m32r-sdi.c                              |    8 +-
 gdb/remote-mips.c                                  |   13 +-
 gdb/remote.c                                       |   42 +-
 gdb/stack.c                                        |    2 +-
 gdb/target.c                                       |  148 +-
 gdb/target.h                                       |   73 +-
 gdb/testsuite/gdb.btrace/Makefile.in               |    4 +-
 gdb/testsuite/gdb.btrace/data.c                    |   36 +
 gdb/testsuite/gdb.btrace/data.exp                  |   45 +
 gdb/testsuite/gdb.btrace/delta.exp                 |   83 +
 gdb/testsuite/gdb.btrace/exception.cc              |   56 +
 gdb/testsuite/gdb.btrace/exception.exp             |   73 +
 gdb/testsuite/gdb.btrace/finish.exp                |   59 +
 gdb/testsuite/gdb.btrace/function_call_history.exp |  322 ++--
 gdb/testsuite/gdb.btrace/instruction_history.exp   |   80 +-
 gdb/testsuite/gdb.btrace/multi-thread-step.c       |   53 +
 gdb/testsuite/gdb.btrace/multi-thread-step.exp     |  135 ++
 gdb/testsuite/gdb.btrace/next.exp                  |   76 +
 gdb/testsuite/gdb.btrace/nexti.exp                 |   76 +
 gdb/testsuite/gdb.btrace/record_goto.c             |   51 +
 gdb/testsuite/gdb.btrace/record_goto.exp           |  183 +++
 gdb/testsuite/gdb.btrace/rn-dl-bind.c              |   37 +
 gdb/testsuite/gdb.btrace/rn-dl-bind.exp            |   52 +
 gdb/testsuite/gdb.btrace/step.exp                  |   89 ++
 gdb/testsuite/gdb.btrace/stepi.exp                 |   93 ++
 gdb/testsuite/gdb.btrace/tailcall.exp              |   92 ++
 gdb/testsuite/gdb.btrace/unknown_functions.c       |   45 +
 gdb/testsuite/gdb.btrace/unknown_functions.exp     |   62 +
 gdb/testsuite/gdb.btrace/x86-record_goto.S         |  355 +++++
 gdb/testsuite/gdb.btrace/x86-tailcall.S            |  279 ++++
 gdb/testsuite/gdb.btrace/x86-tailcall.c            |   39 +
 72 files changed, 6113 insertions(+), 987 deletions(-)
 create mode 100644 gdb/testsuite/gdb.btrace/data.c
 create mode 100644 gdb/testsuite/gdb.btrace/data.exp
 create mode 100644 gdb/testsuite/gdb.btrace/delta.exp
 create mode 100644 gdb/testsuite/gdb.btrace/exception.cc
 create mode 100755 gdb/testsuite/gdb.btrace/exception.exp
 create mode 100644 gdb/testsuite/gdb.btrace/finish.exp
 create mode 100644 gdb/testsuite/gdb.btrace/multi-thread-step.c
 create mode 100644 gdb/testsuite/gdb.btrace/multi-thread-step.exp
 create mode 100644 gdb/testsuite/gdb.btrace/next.exp
 create mode 100644 gdb/testsuite/gdb.btrace/nexti.exp
 create mode 100644 gdb/testsuite/gdb.btrace/record_goto.c
 create mode 100644 gdb/testsuite/gdb.btrace/record_goto.exp
 create mode 100644 gdb/testsuite/gdb.btrace/rn-dl-bind.c
 create mode 100644 gdb/testsuite/gdb.btrace/rn-dl-bind.exp
 create mode 100644 gdb/testsuite/gdb.btrace/step.exp
 create mode 100644 gdb/testsuite/gdb.btrace/stepi.exp
 create mode 100644 gdb/testsuite/gdb.btrace/tailcall.exp
 create mode 100644 gdb/testsuite/gdb.btrace/unknown_functions.c
 create mode 100644 gdb/testsuite/gdb.btrace/unknown_functions.exp
 create mode 100644 gdb/testsuite/gdb.btrace/x86-record_goto.S
 create mode 100644 gdb/testsuite/gdb.btrace/x86-tailcall.S
 create mode 100644 gdb/testsuite/gdb.btrace/x86-tailcall.c

-- 
1.8.3.1


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