[PATCHv7,0/6] Infcalls from B/P conditions in multi-threaded inferiors

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

Message

Andrew Burgess May 15, 2023, 7:22 p.m. UTC
  In v7:

  - Rebased onto current upstream/master, fixed use of
    find_thread_ptid which is now a process_stratum_target method,

  - Retested, with no regressions seen.

In v6:

  - Pushed the 5 initial patches.  These were the smaller fixes, and,
    I felt were pretty obvious fixes.  I'm sure folk will raise
    objections if they disagree.

  - Of the remaining patches, #1 to #5 really needs review before they
    can be merged.  Patch #6 is an obvious cleanup once the first five
    have been merged.

  - I've rebased onto current HEAD of master, there's no significant
    changes.

  - All other documentation changes have been reviewed and approved.

In v5:

  - Rebased to current HEAD of master, minor merge conflict resolved.
    No other code or documentation changes.

  - First patch, which was pure documentation, has now been merged.

  - All other documentation changes have been reviewed and approved.

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 (6):
  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                              |   2 +
 gdb/doc/gdb.texinfo                           | 105 ++++++-
 gdb/gdbthread.h                               |   3 +
 gdb/infcall.c                                 | 296 +++++++++++++++++-
 gdb/infrun.c                                  |  70 ++++-
 gdb/infrun.h                                  |   3 +-
 gdb/remote.c                                  |  10 +
 gdb/testsuite/gdb.base/callfuncs.exp          |   4 +-
 gdb/testsuite/gdb.base/help.exp               |   2 +-
 gdb/testsuite/gdb.base/infcall-failure.exp    |   4 +-
 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 +-
 .../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 +-
 28 files changed, 1903 insertions(+), 68 deletions(-)
 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: 6a1cf1bfedbcdb977d9ead3bf6a228360d78cc1b