[v2,00/12] Extensions for PTWRITE

Message ID 20210614145025.688566-1-felix.willgerodt@intel.com
Headers show
Series
  • Extensions for PTWRITE
Related show

Message

Tom Tromey via Gdb-patches June 14, 2021, 2:50 p.m.
This is a patch series that I tried upstreaming two years ago.
Sorry for taking so long to get back to it.

V1 can be found here:
https://sourceware.org/pipermail/gdb-patches/2019-May/157933.html

Changes compared to v1:
* New patch 7: Extended RSP. This helps when GDB is build
  with a libipt version not supporing ptwrite.
* New patch 11: Added a function to require a specific libipt version
  in the testsuite.
* I addressed all/most of the comments from Markus and Eli from back then.

Patch 1 and 2 were already approved by Markus. In patch 2 some minor
things have changed though.

Regards,
Felix

Regression tested on Fedora 32 and Ubuntu 20.04 x86_64.

Felix Willgerodt (12):
  btrace: Introduce auxiliary instructions.
  btrace: Enable auxiliary instructions in record instruction-history.
  btrace: Enable auxiliary instructions in record function-call-history.
  btrace: Handle stepping and goto for auxiliary instructions.
  python: Introduce gdb.RecordAuxiliary class.
  python: Add clear() to gdb.Record.
  btrace, gdbserver: Add ptwrite to btrace_config_pt.
  btrace, linux: Enable ptwrite packets.
  btrace, python: Enable ptwrite listener registration.
  btrace, python: Enable calling the ptwrite listener.
  gdb, testsuite, lib: Add libipt version check.
  btrace: Extend ptwrite event decoding.

 gdb/NEWS                                      |   6 +
 gdb/btrace.c                                  |  64 ++-
 gdb/btrace.h                                  |  41 +-
 gdb/data-directory/Makefile.in                |   1 +
 gdb/disasm.h                                  |   1 +
 gdb/doc/gdb.texinfo                           |  33 +-
 gdb/doc/python.texi                           | 150 ++++++
 gdb/extension-priv.h                          |   4 +
 gdb/extension.c                               |  21 +
 gdb/extension.h                               |   3 +
 gdb/features/btrace-conf.dtd                  |   1 +
 gdb/guile/guile.c                             |   1 +
 gdb/nat/linux-btrace.c                        |  29 ++
 gdb/python/lib/gdb/ptwrite.py                 |  86 ++++
 gdb/python/py-record-btrace.c                 | 180 ++++++-
 gdb/python/py-record-btrace.h                 |  14 +
 gdb/python/py-record.c                        |  89 +++-
 gdb/python/py-record.h                        |   3 +
 gdb/python/python-internal.h                  |   3 +
 gdb/python/python.c                           |   2 +
 gdb/record-btrace.c                           | 105 +++-
 gdb/record.c                                  |  10 +
 gdb/record.h                                  |   5 +-
 gdb/remote.c                                  |  30 ++
 gdb/testsuite/gdb.btrace/ptwrite.c            |  39 ++
 gdb/testsuite/gdb.btrace/ptwrite.exp          | 194 +++++++
 gdb/testsuite/gdb.btrace/x86_64-ptwrite.S     | 479 ++++++++++++++++++
 gdb/testsuite/gdb.python/py-record-btrace.exp |   6 +-
 gdb/testsuite/lib/gdb.exp                     | 151 +++++-
 gdbserver/linux-low.cc                        |   1 +
 gdbserver/server.cc                           |  16 +
 gdbsupport/btrace-common.h                    |   6 +
 32 files changed, 1733 insertions(+), 41 deletions(-)
 create mode 100644 gdb/python/lib/gdb/ptwrite.py
 create mode 100644 gdb/testsuite/gdb.btrace/ptwrite.c
 create mode 100644 gdb/testsuite/gdb.btrace/ptwrite.exp
 create mode 100644 gdb/testsuite/gdb.btrace/x86_64-ptwrite.S

-- 
2.25.4

Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva  
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928