[PATCHv9,0/5] Infcalls from B/P conditions in multi-threaded inferiors

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

Message

Andrew Burgess Dec. 2, 2023, 10:52 a.m. UTC
  In v9:

  - Dropped previous patch #4 (gdb/remote: avoid SIGINT after calling
    remote_target::stop) after feedback from Pedro.  This patch wasn't
    essential for this series, instead I've just updated some of the
    tests to expect different output from remote targets.

  - Updated to more recent master, and applied a small fix due to the
    recent C++17 changes, nothing huge.

  - Retested on unix, native-gdbserver, and native-extended-gdbserver
    boards.

In v8:

  - Rebased onto current upstream/master and retested.

  - Addressed feedback from Baris on patches 1, 2, 3, & 4.  This was
    mostly minor stuff, comment typos and some improvements to the
    testsuite.  There was one real (but minor) GDB change in patch 4.

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 (5):
  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: introduce unwind-on-timeout setting
  gdb: rename unwindonsignal to unwind-on-signal

 gdb/NEWS                                      |  36 +++
 gdb/breakpoint.c                              |   2 +
 gdb/doc/gdb.texinfo                           | 111 ++++++-
 gdb/gdbthread.h                               |   3 +
 gdb/infcall.c                                 | 301 +++++++++++++++++-
 gdb/infrun.c                                  |  70 +++-
 gdb/infrun.h                                  |   3 +-
 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    | 115 +++++++
 gdb/testsuite/gdb.base/unwindonsignal.exp     |  36 ++-
 gdb/testsuite/gdb.compile/compile-cplus.exp   |   6 +-
 gdb/testsuite/gdb.compile/compile.exp         |   6 +-
 gdb/testsuite/gdb.cp/gdb2495.exp              |  16 +-
 gdb/testsuite/gdb.fortran/function-calls.exp  |   2 +-
 gdb/testsuite/gdb.mi/mi-condbreak-fail.exp    |   6 +-
 gdb/testsuite/gdb.mi/mi-condbreak-throw.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          | 191 +++++++++++
 .../gdb.threads/thread-unwindonsignal.exp     |   8 +-
 29 files changed, 1943 insertions(+), 77 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: a393b155174d20d3d120b5012b87c5438ab9e3d4