[PATCH v3 00/15] record btrace: prepare for a new trace format

Markus Metzger
2015-01-29T16:28:38Z

Changes to v2:

- patch "btrace: use the new cpu identifier" has been squashed into
patch "btrace: identify cpu". Addressed Pedro's layering comments.

- new patches to fix test fails for 32-bit inferiors reported by Jan
"btrace: work around _dl_runtime_resolve returning to resolved function"
"btrace: support 32-bit inferior on 64-bit host"
"btrace: increase buffer size for exception test"

I put them on top of this series since it was easier to fix
"btrace: work around _dl_runtime_resolve returning to resolved function"
after some prework in "btrace: extend struct btrace_insn" and others.

- a trivial new standalone patch "btrace: less debug output"

- fixed some bugs I found in "record-btrace: indicate gaps" that I ran
into while investigating the above mentioned issues.

- Addressed Pedro's feedback on v2.

This is the first part of a patch series that adds support for a new trace
format. The entire series consists of three parts:

- preparation (this)
- support live inferior tracing
- support trace in core files

Besides preparing for an additional trace format, this first part adds the
following functionality:

- allow the trace buffer size to be configured
- indicate errors as gaps in the trace

And it fixes a few test fails with 32-bit inferiors reported by Jan Kratochvil.

In order to motivate some patches (e.g. identifying the cpu or changing the
btrace_compute_ftrace parameters), I also send a work-in-progress version of the
second part that adds support for the new trace format. This patch is functional
but not part of the review since the kernel changes are still under review.

Markus Metzger (15):
btrace: add struct btrace_data
btrace: add format argument to supports_btrace
btrace, linux: add perf event buffer abstraction
record btrace: add configuration struct
record-btrace: add bts buffer size configuration option
btrace: update btrace_compute_ftrace parameters
btrace: extend struct btrace_insn
btrace: identify cpu
record-btrace: indicate gaps
btrace: less debug output
btrace: work around _dl_runtime_resolve returning to resolved function
btrace: support 32-bit inferior on 64-bit host
btrace: increase buffer size for exception test
configure: check for libipt
[wip] btrace: support Intel(R) Processor Trace

gdb/Makefile.in | 14 +-
gdb/NEWS | 35 +
gdb/btrace.c | 965 ++++++++++++++++++++---
gdb/btrace.h | 98 ++-
gdb/common/btrace-common.c | 93 +++
gdb/common/btrace-common.h | 138 +++-
gdb/config.in | 3 +
gdb/configure | 498 ++++++++++++
gdb/configure.ac | 20 +
gdb/doc/gdb.texinfo | 255 +++++-
gdb/features/btrace-conf.dtd | 14 +
gdb/features/btrace.dtd | 16 +-
gdb/gdbserver/Makefile.in | 8 +-
gdb/gdbserver/linux-low.c | 149 +++-
gdb/gdbserver/server.c | 212 ++++-
gdb/gdbserver/target.h | 27 +-
gdb/nat/linux-btrace.c | 783 +++++++++++++++---
gdb/nat/linux-btrace.h | 84 +-
gdb/record-btrace.c | 517 +++++++++++-
gdb/remote.c | 203 ++++-
gdb/target-debug.h | 8 +
gdb/target-delegates.c | 65 +-
gdb/target.c | 22 +-
gdb/target.h | 37 +-
gdb/testsuite/gdb.btrace/buffer-size.exp | 57 ++
gdb/testsuite/gdb.btrace/delta.exp | 12 +-
gdb/testsuite/gdb.btrace/enable.exp | 4 +-
gdb/testsuite/gdb.btrace/exception.exp | 2 +
gdb/testsuite/gdb.btrace/finish.exp | 3 +-
gdb/testsuite/gdb.btrace/instruction_history.exp | 2 +-
gdb/testsuite/gdb.btrace/next.exp | 6 +-
gdb/testsuite/gdb.btrace/nexti.exp | 6 +-
gdb/testsuite/gdb.btrace/nohist.exp | 3 +-
gdb/testsuite/gdb.btrace/step.exp | 6 +-
gdb/testsuite/gdb.btrace/stepi.exp | 6 +-
gdb/x86-linux-nat.c | 26 +-
36 files changed, 3962 insertions(+), 435 deletions(-)
create mode 100644 gdb/common/btrace-common.c
create mode 100644 gdb/features/btrace-conf.dtd
create mode 100644 gdb/testsuite/gdb.btrace/buffer-size.exp

--
1.8.3.1