[PATCHv4,00/12] Infcalls from B/P conditions in multi-threaded inferiors

Message ID cover.1677602051.git.aburgess@redhat.com
Headers
Series Infcalls from B/P conditions in multi-threaded inferiors |

Message

Andrew Burgess Feb. 28, 2023, 4:42 p.m. UTC
  In v4:

  - I believe all the docs changes have been reviewed and approved by Eli,

  - Rebased onto current master,

  - Dropped patch #2 from the V3 series,

  - I have addressed all the issues Baris pointed out, including the
    fixes for the patch #9 ('gdb: add timeouts for inferior function
    calls'), which I forgot to do in V3.

In v3:

  - Updates for review feedback, biggest changes in #10 and #11, but
    minor changes to most patches.

In V2:

  - Rebased onto something closer to HEAD of master,

  - Patches #1, #2, #12, and #13 are new in this series,

  - Patches #3 to #9, and #11 are unchanged since their V1 iteration,

  - Patches #10 has changed slightly in implementation since v1, and
    the docs have been significantly updated.

---

Andrew Burgess (12):
  gdb/doc: extended documentation for inferior function calls
  gdb: include breakpoint number in testing condition error message
  gdbserver: allows agent_mem_read to return an error code
  gdbserver: allow agent expressions to fail with invalid memory access
  gdb: avoid repeated signal reporting during failed conditional
    breakpoint
  gdb: don't always print breakpoint location after failed condition
    check
  Revert "gdb: remove unnecessary parameter wait_ptid from
    do_target_wait"
  gdb: fix b/p conditions with infcalls in multi-threaded inferiors
  gdb: add timeouts for inferior function calls
  gdb/remote: avoid SIGINT after calling remote_target::stop
  gdb: introduce unwind-on-timeout setting
  gdb: rename unwindonsignal to unwind-on-signal

 gdb/NEWS                                      |  38 +++
 gdb/breakpoint.c                              |  17 +-
 gdb/doc/gdb.texinfo                           | 127 +++++++-
 gdb/gdbthread.h                               |   3 +
 gdb/infcall.c                                 | 305 +++++++++++++++++-
 gdb/infrun.c                                  |  70 +++-
 gdb/infrun.h                                  |   3 +-
 gdb/remote.c                                  |  10 +
 gdb/testsuite/gdb.base/bp-cond-failure.c      |  30 ++
 gdb/testsuite/gdb.base/bp-cond-failure.exp    | 104 ++++++
 gdb/testsuite/gdb.base/callfuncs.exp          |   4 +-
 .../gdb.base/catch-signal-siginfo-cond.exp    |   2 +-
 gdb/testsuite/gdb.base/gnu-ifunc.exp          |   2 +-
 gdb/testsuite/gdb.base/help.exp               |   2 +-
 gdb/testsuite/gdb.base/infcall-failure.c      |  48 +++
 gdb/testsuite/gdb.base/infcall-failure.exp    | 183 +++++++++++
 gdb/testsuite/gdb.base/infcall-timeout.c      |  36 +++
 gdb/testsuite/gdb.base/infcall-timeout.exp    |  98 ++++++
 gdb/testsuite/gdb.base/unwindonsignal.exp     |  36 ++-
 gdb/testsuite/gdb.compile/compile-cplus.exp   |   2 +-
 gdb/testsuite/gdb.compile/compile.exp         |   2 +-
 gdb/testsuite/gdb.cp/gdb2495.exp              |  16 +-
 gdb/testsuite/gdb.fortran/function-calls.exp  |   2 +-
 gdb/testsuite/gdb.mi/mi-syn-frame.exp         |   2 +-
 .../gdb.python/py-finish-breakpoint.exp       |   2 +-
 .../infcall-from-bp-cond-other-thread-event.c | 135 ++++++++
 ...nfcall-from-bp-cond-other-thread-event.exp | 174 ++++++++++
 .../gdb.threads/infcall-from-bp-cond-simple.c |  89 +++++
 .../infcall-from-bp-cond-simple.exp           | 235 ++++++++++++++
 .../gdb.threads/infcall-from-bp-cond-single.c | 139 ++++++++
 .../infcall-from-bp-cond-single.exp           | 117 +++++++
 .../infcall-from-bp-cond-timeout.c            | 169 ++++++++++
 .../infcall-from-bp-cond-timeout.exp          | 174 ++++++++++
 .../gdb.threads/thread-unwindonsignal.exp     |   8 +-
 gdbserver/ax.cc                               |  12 +-
 gdbserver/ax.h                                |   3 +-
 gdbserver/tracepoint.cc                       |  11 +-
 gdbserver/tracepoint.h                        |   9 +-
 38 files changed, 2340 insertions(+), 79 deletions(-)
 create mode 100644 gdb/testsuite/gdb.base/bp-cond-failure.c
 create mode 100644 gdb/testsuite/gdb.base/bp-cond-failure.exp
 create mode 100644 gdb/testsuite/gdb.base/infcall-failure.c
 create mode 100644 gdb/testsuite/gdb.base/infcall-failure.exp
 create mode 100644 gdb/testsuite/gdb.base/infcall-timeout.c
 create mode 100644 gdb/testsuite/gdb.base/infcall-timeout.exp
 create mode 100644 gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.c
 create mode 100644 gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.exp
 create mode 100644 gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.c
 create mode 100644 gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp
 create mode 100644 gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.c
 create mode 100644 gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.exp
 create mode 100644 gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.c
 create mode 100644 gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp


base-commit: 2968b79fca38cf18e8eef360c36de7a6e3846d3c