public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH v2 00/24] Multi-target support
@ 2019-10-17 22:50 Pedro Alves
  2019-10-17 22:50 ` [PATCH v2 01/24] Preserve selected thread in all-stop w/ background execution Pedro Alves
                   ` (27 more replies)
  0 siblings, 28 replies; 73+ messages in thread
From: Pedro Alves @ 2019-10-17 22:50 UTC (permalink / raw)
  To: gdb-patches

Here's v2 of the multi-target patchset, which addresses all the review
comments so far, I believe.  Patch 15 is new, so all following patches
are shifted by one.

This time, I've adjusted the host-specific nat files to function API
changes.  I tried to find spots that would need changes using grep.  I
built the series on AIX, x86/SPARC Solaris, 64-bit Windows, x86
GNU/Linux -m64/-m32, and Aarch64 GNU/Linux.  I'm currently running
this through the buildbot, will have results tomorrow.  I don't expect
any serious major issue, if any, as so far runs that completed seem
OK.

Follows the intro blurb:

This series adds multi-target support to GDB.  What this means is that
with this series, GDB can now be connected to different targets at the
same time.  E.g., you can debug a live native process and a core dump
at the same time, connect to multiple gdbservers, etc.

Patches 1 to 17 are preparatory patches.

Patch 18 is the actual multi-target patch.  This is the largest patch
in the series.  It does a number of things at the same time, but
they're all intertwined, so I gave up on splitting it further.

Patch 19 adds tests.  Split out because patch 18 is already too big as
is.

Patch 22 does some user-visible changes, including a new command to
list open target connections.  This is just the bare minimum I could
think of that is necessary for multi-target work.  I'm sure we'll find
other tweaks to other commands necessary.

Documentation is in patch 24.  Eli already reviewed and approved it.

I've pushed this to users/palves/multi-target-v2 on sourceware.

Pedro Alves (23):
  Preserve selected thread in all-stop w/ background execution
  Don't rely on inferior_ptid in record_full_wait
  Make "show remote exec-file" inferior-aware
  exceptions.c:print_flush: Remove obsolete check
  Make target_ops::has_execution take an 'inferior *' instead of a
    ptid_t
  Don't check target is running in remote_target::mourn_inferior
  Delete unnecessary code from kill_command
  Introduce switch_to_inferior_no_thread
  switch inferior/thread before calling target methods
  Some get_last_target_status tweaks
  tfile_target::close: trace_fd can't be -1
  Use all_non_exited_inferiors in infrun.c
  Delete exit_inferior_silent(int pid)
  Tweak handling of remote errors in response to resumption packet
  Fix reconnecting to a gdbserver already debugging multiple processes,
    I
  Fix reconnecting to a gdbserver already debugging multiple processes,
    II
  Multi-target support
  Add multi-target tests
  gdbarch-selftests.c: No longer error out if debugging something
  Revert 'Remove unused struct serial::name field'
  Add "info connections" command, "info inferiors" connection
    number/string
  Require always-non-stop for multi-target resumptions
  Multi-target: NEWS and user manual

Tankut Baris Aktemur (1):
  Avoid another inferior_ptid reference in gdb/remote.c

 gdb/doc/gdb.texinfo                                | 137 ++--
 gdb/doc/guile.texi                                 |   4 +-
 gdb/doc/python.texi                                |   6 +-
 gdb/NEWS                                           |  29 +
 gdb/Makefile.in                                    |   1 +
 gdb/aarch64-linux-nat.c                            |   2 +-
 gdb/ada-tasks.c                                    |   4 +-
 gdb/aix-thread.c                                   |  24 +-
 gdb/amd64-fbsd-tdep.c                              |   4 +-
 gdb/amd64-linux-nat.c                              |   2 +-
 gdb/break-catch-sig.c                              |   3 +-
 gdb/break-catch-syscall.c                          |   3 +-
 gdb/breakpoint.c                                   |  25 +-
 gdb/bsd-uthread.c                                  |  20 +-
 gdb/btrace.c                                       |   2 +-
 gdb/corelow.c                                      |  10 +-
 gdb/event-top.c                                    |  14 +-
 gdb/exceptions.c                                   |   6 +-
 gdb/exec.c                                         |  51 +-
 gdb/exec.h                                         |   7 +
 gdb/fbsd-tdep.c                                    |   3 +-
 gdb/fork-child.c                                   |   7 +-
 gdb/gdbarch-selftests.c                            |   5 -
 gdb/gdbserver/fork-child.c                         |   3 +-
 gdb/gdbserver/inferiors.c                          |   2 +-
 gdb/gdbserver/linux-low.c                          |   2 +-
 gdb/gdbserver/lynx-low.c                           |   2 +-
 gdb/gdbserver/nto-low.c                            |   2 +-
 gdb/gdbserver/remote-utils.c                       |   2 +-
 gdb/gdbserver/target.c                             |   8 +-
 gdb/gdbserver/target.h                             |  11 +-
 gdb/gdbserver/win32-low.c                          |   4 +-
 gdb/gdbsupport/common-gdbthread.h                  |   5 +-
 gdb/gdbthread.h                                    | 133 ++--
 gdb/i386-fbsd-tdep.c                               |   4 +-
 gdb/i386-linux-nat.c                               |   2 +-
 gdb/inf-child.c                                    |   2 +-
 gdb/inf-ptrace.c                                   |   6 +-
 gdb/infcall.c                                      |   3 +-
 gdb/infcmd.c                                       | 129 ++--
 gdb/inferior-iter.h                                |  76 ++-
 gdb/inferior.c                                     | 156 +++--
 gdb/inferior.h                                     |  71 +-
 gdb/infrun.c                                       | 720 ++++++++++++++++-----
 gdb/infrun.h                                       |  23 +-
 gdb/inline-frame.c                                 |  51 +-
 gdb/inline-frame.h                                 |  12 +-
 gdb/linux-fork.c                                   |   5 +-
 gdb/linux-nat.c                                    |  76 ++-
 gdb/linux-nat.h                                    |   1 +
 gdb/linux-tdep.c                                   |   3 +-
 gdb/linux-thread-db.c                              | 112 ++--
 gdb/mi/mi-interp.c                                 |  10 +-
 gdb/mi/mi-main.c                                   |   6 +-
 gdb/nat/fork-inferior.c                            |   8 +-
 gdb/nat/fork-inferior.h                            |   5 +-
 gdb/nto-procfs.c                                   |   2 +-
 gdb/ppc-fbsd-tdep.c                                |   4 +-
 gdb/proc-service.c                                 |  17 +-
 gdb/process-stratum-target.c                       |  12 +-
 gdb/process-stratum-target.h                       |  31 +-
 gdb/procfs.c                                       |  49 +-
 gdb/python/py-threadevent.c                        |   4 +-
 gdb/ravenscar-thread.c                             |  15 +-
 gdb/record-btrace.c                                |  41 +-
 gdb/record-full.c                                  |  22 +-
 gdb/regcache.c                                     | 162 +++--
 gdb/regcache.h                                     |  30 +-
 gdb/remote.c                                       | 307 +++++----
 gdb/riscv-fbsd-tdep.c                              |   4 +-
 gdb/serial.c                                       |   4 +
 gdb/serial.h                                       |   1 +
 gdb/sol-thread.c                                   |  28 +-
 gdb/sol2-tdep.c                                    |   2 +-
 gdb/solib-svr4.c                                   |   3 +-
 gdb/target-connection.c                            | 159 +++++
 gdb/target-connection.h                            |  40 ++
 gdb/target-delegates.c                             |  27 +
 gdb/target.c                                       | 192 +++---
 gdb/target.h                                       |  41 +-
 gdb/testsuite/gdb.base/fork-running-state.exp      |  17 +-
 .../gdb.base/kill-detach-inferiors-cmd.exp         |   4 +-
 gdb/testsuite/gdb.base/quit-live.exp               |   2 +-
 gdb/testsuite/gdb.base/remote-exec-file.exp        |  46 ++
 gdb/testsuite/gdb.guile/scm-progspace.exp          |   2 +-
 gdb/testsuite/gdb.linespec/linespec.exp            |   2 +-
 gdb/testsuite/gdb.mi/new-ui-mi-sync.exp            |   2 +-
 .../gdb.mi/user-selected-context-sync.exp          |   2 +-
 gdb/testsuite/gdb.multi/multi-target.c             | 100 +++
 gdb/testsuite/gdb.multi/multi-target.exp           | 387 +++++++++++
 gdb/testsuite/gdb.multi/remove-inferiors.exp       |   2 +-
 gdb/testsuite/gdb.multi/tids-gid-reset.c           |  22 +
 gdb/testsuite/gdb.multi/tids-gid-reset.exp         |  96 +++
 gdb/testsuite/gdb.multi/watchpoint-multi.exp       |   2 +-
 gdb/testsuite/gdb.python/py-inferior.exp           |   4 +-
 .../gdb.server/connect-without-multi-process.exp   |   7 +-
 .../gdb.server/extended-remote-restart.exp         |  22 +-
 gdb/testsuite/gdb.threads/async.c                  |  70 ++
 gdb/testsuite/gdb.threads/async.exp                |  98 +++
 gdb/testsuite/gdb.threads/fork-plus-threads.exp    |   2 +-
 .../forking-threads-plus-breakpoint.exp            |   2 +-
 gdb/testsuite/gdb.trace/report.exp                 |   2 +-
 gdb/testsuite/lib/gdbserver-support.exp            |   4 +
 gdb/thread-iter.c                                  |  14 +-
 gdb/thread-iter.h                                  |  25 +-
 gdb/thread.c                                       | 230 ++++---
 gdb/top.c                                          |  17 +-
 gdb/tracectf.c                                     |   2 +-
 gdb/tracefile-tfile.c                              |   5 +-
 gdb/tracefile.h                                    |   2 +-
 gdb/windows-nat.c                                  |  20 +-
 111 files changed, 3360 insertions(+), 1073 deletions(-)
 create mode 100644 gdb/target-connection.c
 create mode 100644 gdb/target-connection.h
 create mode 100644 gdb/testsuite/gdb.base/remote-exec-file.exp
 create mode 100644 gdb/testsuite/gdb.multi/multi-target.c
 create mode 100644 gdb/testsuite/gdb.multi/multi-target.exp
 create mode 100644 gdb/testsuite/gdb.multi/tids-gid-reset.c
 create mode 100644 gdb/testsuite/gdb.multi/tids-gid-reset.exp
 create mode 100644 gdb/testsuite/gdb.threads/async.c
 create mode 100644 gdb/testsuite/gdb.threads/async.exp

-- 
2.14.5

^ permalink raw reply	[flat|nested] 73+ messages in thread

end of thread, other threads:[~2020-08-12 18:45 UTC | newest]

Thread overview: 73+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-17 22:50 [PATCH v2 00/24] Multi-target support Pedro Alves
2019-10-17 22:50 ` [PATCH v2 01/24] Preserve selected thread in all-stop w/ background execution Pedro Alves
2019-11-01 13:20   ` Tom Tromey
2019-12-20 17:22     ` Pedro Alves
2019-12-20 18:54       ` Tom Tromey
2019-12-20 18:57         ` Pedro Alves
2019-12-20 18:57           ` Tom Tromey
2019-10-17 22:50 ` [PATCH v2 09/24] switch inferior/thread before calling target methods Pedro Alves
2019-10-17 22:50 ` [PATCH v2 21/24] Revert 'Remove unused struct serial::name field' Pedro Alves
2019-10-17 22:50 ` [PATCH v2 15/24] Avoid another inferior_ptid reference in gdb/remote.c Pedro Alves
2019-10-17 22:50 ` [PATCH v2 06/24] Don't check target is running in remote_target::mourn_inferior Pedro Alves
2019-10-17 22:50 ` [PATCH v2 03/24] Make "show remote exec-file" inferior-aware Pedro Alves
2019-10-17 22:50 ` [PATCH v2 10/24] Some get_last_target_status tweaks Pedro Alves
2019-10-17 22:50 ` [PATCH v2 11/24] tfile_target::close: trace_fd can't be -1 Pedro Alves
2019-10-17 22:50 ` [PATCH v2 02/24] Don't rely on inferior_ptid in record_full_wait Pedro Alves
2019-11-01 14:54   ` Tom Tromey
2019-12-20 17:49     ` Pedro Alves
2019-12-20 18:57       ` Tom Tromey
2019-10-17 22:50 ` [PATCH v2 17/24] Fix reconnecting to a gdbserver already debugging multiple processes, II Pedro Alves
2019-10-17 22:50 ` [PATCH v2 12/24] Use all_non_exited_inferiors in infrun.c Pedro Alves
2019-10-17 22:50 ` [PATCH v2 16/24] Fix reconnecting to a gdbserver already debugging multiple processes, I Pedro Alves
2019-10-17 22:51 ` [PATCH v2 19/24] Add multi-target tests Pedro Alves
2019-10-17 22:51 ` [PATCH v2 04/24] exceptions.c:print_flush: Remove obsolete check Pedro Alves
2019-10-17 22:51 ` [PATCH v2 22/24] Add "info connections" command, "info inferiors" connection number/string Pedro Alves
2019-10-17 22:51 ` [PATCH v2 18/24] Multi-target support Pedro Alves
2020-01-11  3:12   ` Simon Marchi
2020-01-12  1:58     ` [pushed] Remove last traces of discard_all_inferiors (Re: [PATCH v2 18/24] Multi-target support) Pedro Alves
2020-01-12 20:17   ` [PATCH v2 18/24] Multi-target support Simon Marchi
2020-01-13 15:19     ` Pedro Alves
2020-01-13 16:37       ` Simon Marchi
2020-01-12 22:30   ` Simon Marchi
2020-01-13 15:59     ` Pedro Alves
2020-01-17  4:03   ` Simon Marchi
2020-01-17 16:19     ` Simon Marchi
2020-01-17 15:18   ` Simon Marchi
2020-05-16  8:16   ` Andreas Schwab
2020-05-16 11:33     ` Fix IA-64 GNU/Linux build (Re: [PATCH v2 18/24] Multi-target support) Pedro Alves
2019-10-17 22:57 ` [PATCH v2 23/24] Require always-non-stop for multi-target resumptions Pedro Alves
2019-11-01 14:51   ` Tom Tromey
2019-12-30 18:30     ` Pedro Alves
2019-12-31 20:06       ` Tom Tromey
2019-10-17 22:57 ` [PATCH v2 07/24] Delete unnecessary code from kill_command Pedro Alves
2019-10-17 22:57 ` [PATCH v2 05/24] Make target_ops::has_execution take an 'inferior *' instead of a ptid_t Pedro Alves
2019-10-17 22:59 ` [PATCH v2 13/24] Delete exit_inferior_silent(int pid) Pedro Alves
2019-10-17 22:59 ` [PATCH v2 20/24] gdbarch-selftests.c: No longer error out if debugging something Pedro Alves
2019-10-17 22:59 ` [PATCH v2 08/24] Introduce switch_to_inferior_no_thread Pedro Alves
2019-11-07  9:14   ` Paunovic, Aleksandar
2019-12-20 18:50     ` Pedro Alves
2019-12-23 19:30       ` [PATCH] Switch the inferior too in switch_to_program_space_and_thread (Re: [PATCH v2 08/24] Introduce switch_to_inferior_no_thread) Pedro Alves
2020-01-08 15:48         ` Aktemur, Tankut Baris
2020-01-10  2:03           ` Pedro Alves
2020-01-10 11:33             ` Aktemur, Tankut Baris
2020-01-10 12:18               ` Pedro Alves
2020-01-10 13:51                 ` Aktemur, Tankut Baris
2020-01-10 14:41             ` Tom Tromey
2020-01-10 20:03               ` Pedro Alves
2019-10-17 22:59 ` [PATCH v2 24/24] Multi-target: NEWS and user manual Pedro Alves
2019-10-17 23:00 ` [PATCH v2 14/24] Tweak handling of remote errors in response to resumption packet Pedro Alves
2019-10-18 20:23 ` [PATCH v2 00/24] Multi-target support John Baldwin
2019-10-29 19:13   ` Pedro Alves
2020-01-09 19:32     ` John Baldwin
2020-01-09 19:50       ` Pedro Alves
2020-01-10 13:49         ` Aktemur, Tankut Baris
2020-01-10 15:40           ` [PATCH] Switch the inferior before outputting its id in "info inferiors" (Re: [PATCH v2 00/24] Multi-target support) Pedro Alves
2019-10-20 11:41 ` [PATCH v2 00/24] Multi-target support Philippe Waroquiers
2019-10-29 19:56   ` Pedro Alves
2019-11-01 14:56 ` Tom Tromey
2020-01-10 20:13 ` Pedro Alves
2020-08-04  3:30   ` Kevin Buettner
2020-08-06 15:16     ` Pedro Alves
2020-08-06 17:49       ` Tom Tromey
2020-08-07 22:43       ` Kevin Buettner
2020-08-12 18:45         ` Pedro Alves

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).