[v9,00/10] Extensions for PTWRITE

Message ID 20230704123600.5944-1-felix.willgerodt@intel.com
Headers
Series Extensions for PTWRITE |

Message

Willgerodt, Felix July 4, 2023, 12:35 p.m. UTC
  From: "Willgerodt, Felix" <felix.willgerodt@intel.com>

v8 can be found here:
https://sourceware.org/pipermail/gdb-patches/2023-March/198177.html

I changed the following commits, mainly based on comments from Simon (thanks!):

* Patch 4:
Changed error message for going to an aux instruction.
* Patch 5:
I fixed the possibility of dangling aux objects in python, by erroring out
earlier and some restructuring.
* Patch 8:
I added parsing the config bit from a file provided by Linux, instead of
hardcoding it.
* Patch 9:
This changed a bit. I restructured the ptwrite filtering book-keeping and
registration. Now we use a factory pattern for registration. I also removed
the handler for inferior exit events in favour of one for the newly added
thread_exit event. That simplified the python file.
* Patch 10:
This is now using an optional for the filter function return value and is
printing the payload directly, if we don't have a filter or no Python
support. The documentation changed a lot due to the new way to register filters.

Thanks,
Felix


Felix Willgerodt (10):
  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 filter registration.
  btrace: Extend ptwrite event decoding.

 gdb/NEWS                                      |   7 +
 gdb/btrace.c                                  |  72 ++-
 gdb/btrace.h                                  |  41 +-
 gdb/config.in                                 |   3 +
 gdb/configure                                 |  11 +
 gdb/data-directory/Makefile.in                |   1 +
 gdb/disasm-flags.h                            |   1 +
 gdb/doc/gdb.texinfo                           |  32 +-
 gdb/doc/python.texi                           | 166 ++++++
 gdb/extension-priv.h                          |   5 +
 gdb/extension.c                               |  13 +
 gdb/extension.h                               |   3 +
 gdb/features/btrace-conf.dtd                  |   1 +
 gdb/guile/guile.c                             |   1 +
 gdb/nat/linux-btrace.c                        |  58 ++
 gdb/python/lib/gdb/ptwrite.py                 |  77 +++
 gdb/python/py-record-btrace.c                 | 185 +++++-
 gdb/python/py-record-btrace.h                 |   6 +
 gdb/python/py-record.c                        |  78 ++-
 gdb/python/py-record.h                        |   7 +
 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                                  |  33 ++
 gdb/testsuite/gdb.btrace/i386-ptwrite.S       | 550 ++++++++++++++++++
 gdb/testsuite/gdb.btrace/ptwrite.c            |  39 ++
 gdb/testsuite/gdb.btrace/ptwrite.exp          | 202 +++++++
 gdb/testsuite/gdb.btrace/x86_64-ptwrite.S     | 544 +++++++++++++++++
 gdb/testsuite/gdb.python/py-record-btrace.exp |   4 +
 gdb/testsuite/lib/gdb.exp                     |  72 +++
 gdbserver/linux-low.cc                        |   3 +
 gdbserver/server.cc                           |  18 +
 gdbsupport/btrace-common.h                    |   6 +
 gdbsupport/common.m4                          |   2 +
 gdbsupport/config.in                          |   3 +
 gdbsupport/configure                          |  11 +
 38 files changed, 2345 insertions(+), 35 deletions(-)
 create mode 100644 gdb/python/lib/gdb/ptwrite.py
 create mode 100644 gdb/testsuite/gdb.btrace/i386-ptwrite.S
 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
  

Comments

Tom Tromey July 6, 2023, 4:37 p.m. UTC | #1
>>>>> Felix Willgerodt via Gdb-patches <gdb-patches@sourceware.org> writes:

> I changed the following commits, mainly based on comments from Simon (thanks!):
[...]

FWIW I skimmed through this series and sent a couple of comments.
Otherwise it looks good to me.

Tom