[PATCH v9 00/29] record-btrace: reverse
Markus Metzger
markus.t.metzger@intel.com
Thu Dec 19 16:45:00 GMT 2013
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
More information about the Gdb-patches
mailing list