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

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

Message

Andrew Burgess June 7, 2023, 10:01 a.m. UTC
  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 (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                                  |  23 +-
 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    |  97 ++++++
 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          | 173 ++++++++++
 .../gdb.threads/thread-unwindonsignal.exp     |   8 +-
 28 files changed, 1902 insertions(+), 80 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: baab375361c365afee2577c94cbbd3fdd443d6da
  

Comments

Andrew Burgess July 4, 2023, 11:20 a.m. UTC | #1
Andrew Burgess <aburgess@redhat.com> writes:

I'm thinking about merging this series possibly later this week, or
early next.  I didn't get this on the list early enough for GDB 13, and
I'd like to see this land for GDB 14.

If there are any objections then, of course, I'll hold off merging this.

Thanks,
Andrew

> 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 (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                                  |  23 +-
>  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    |  97 ++++++
>  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          | 173 ++++++++++
>  .../gdb.threads/thread-unwindonsignal.exp     |   8 +-
>  28 files changed, 1902 insertions(+), 80 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: baab375361c365afee2577c94cbbd3fdd443d6da
> -- 
> 2.25.4