All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/11] gdbstub: Implement follow-fork-mode child
@ 2024-02-16 13:05 Ilya Leoshkevich
  2024-02-16 13:05 ` [PATCH v3 01/11] gdbstub: Support disablement in a multi-threaded process Ilya Leoshkevich
                   ` (10 more replies)
  0 siblings, 11 replies; 24+ messages in thread
From: Ilya Leoshkevich @ 2024-02-16 13:05 UTC (permalink / raw)
  To: Alex Bennée, Laurent Vivier, Warner Losh
  Cc: Kyle Evans, Philippe Mathieu-Daudé, qemu-devel,
	Ilya Leoshkevich

v2: https://lists.gnu.org/archive/html/qemu-devel/2024-02/msg00810.html
v2 -> v3: Rebase on top of master.
          Fix a typo in the 01/11 commit message.

v1: https://lists.gnu.org/archive/html/qemu-devel/2024-01/msg06646.html
v1 -> v2: Factor out a number of prep patches;
          Add a state transition diagram comment (Alex).
          Improve a few comments;
          Extend the ts_tid fix to bsd.

Hi,

I needed to debug a linux-user crash between fork() and exec() [1] and
realized that gdbstub does not allow this. This series lifts this
restriction (one still cannot debug past exec() though). Patches 1-9
are preliminary refactorings, patch 10 is the implementation, and patch
11 is the test.

[1] https://lists.gnu.org/archive/html/qemu-devel/2024-01/msg06424.html

Best regards,
Ilya

Ilya Leoshkevich (11):
  gdbstub: Support disablement in a multi-threaded process
  {linux,bsd}-user: Update ts_tid after fork()
  gdbstub: Introduce gdbserver_fork_start()
  {linux,bsd}-user: Pass pid to fork_end()
  {linux,bsd}-user: Pass pid to gdbserver_fork()
  gdbstub: Call gdbserver_fork() both in parent and in child
  gdbstub: Introduce gdb_handle_query_supported_user()
  gdbstub: Introduce gdb_handle_set_thread_user()
  gdbstub: Introduce gdb_handle_detach_user()
  gdbstub: Implement follow-fork-mode child
  tests/tcg: Add two follow-fork-mode tests

 bsd-user/freebsd/os-proc.h                    |   6 +-
 bsd-user/main.c                               |   9 +-
 bsd-user/qemu.h                               |   2 +-
 gdbstub/gdbstub.c                             |  29 ++-
 gdbstub/internals.h                           |   3 +
 gdbstub/user.c                                | 244 +++++++++++++++++-
 include/gdbstub/user.h                        |  11 +-
 linux-user/main.c                             |   8 +-
 linux-user/syscall.c                          |   6 +-
 linux-user/user-internals.h                   |   2 +-
 tests/tcg/multiarch/Makefile.target           |  17 +-
 tests/tcg/multiarch/follow-fork-mode.c        |  56 ++++
 .../gdbstub/follow-fork-mode-child.py         |  40 +++
 .../gdbstub/follow-fork-mode-parent.py        |  16 ++
 14 files changed, 424 insertions(+), 25 deletions(-)
 create mode 100644 tests/tcg/multiarch/follow-fork-mode.c
 create mode 100644 tests/tcg/multiarch/gdbstub/follow-fork-mode-child.py
 create mode 100644 tests/tcg/multiarch/gdbstub/follow-fork-mode-parent.py

-- 
2.43.0



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

end of thread, other threads:[~2024-02-19 14:18 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-16 13:05 [PATCH v3 00/11] gdbstub: Implement follow-fork-mode child Ilya Leoshkevich
2024-02-16 13:05 ` [PATCH v3 01/11] gdbstub: Support disablement in a multi-threaded process Ilya Leoshkevich
2024-02-16 17:04   ` Alex Bennée
2024-02-17 20:21   ` Richard Henderson
2024-02-19 13:05     ` Ilya Leoshkevich
2024-02-19 14:18       ` Ilya Leoshkevich
2024-02-16 13:05 ` [PATCH v3 02/11] {linux,bsd}-user: Update ts_tid after fork() Ilya Leoshkevich
2024-02-16 17:45   ` Alex Bennée
2024-02-17 20:22     ` Richard Henderson
2024-02-16 13:05 ` [PATCH v3 03/11] gdbstub: Introduce gdbserver_fork_start() Ilya Leoshkevich
2024-02-16 17:46   ` Alex Bennée
2024-02-16 13:05 ` [PATCH v3 04/11] {linux,bsd}-user: Pass pid to fork_end() Ilya Leoshkevich
2024-02-16 17:48   ` Alex Bennée
2024-02-17 20:26   ` Richard Henderson
2024-02-16 13:05 ` [PATCH v3 05/11] {linux,bsd}-user: Pass pid to gdbserver_fork() Ilya Leoshkevich
2024-02-17 20:27   ` Richard Henderson
2024-02-16 13:05 ` [PATCH v3 06/11] gdbstub: Call gdbserver_fork() both in parent and in child Ilya Leoshkevich
2024-02-17 20:30   ` Richard Henderson
2024-02-16 13:05 ` [PATCH v3 07/11] gdbstub: Introduce gdb_handle_query_supported_user() Ilya Leoshkevich
2024-02-17 20:36   ` Richard Henderson
2024-02-16 13:05 ` [PATCH v3 08/11] gdbstub: Introduce gdb_handle_set_thread_user() Ilya Leoshkevich
2024-02-16 13:05 ` [PATCH v3 09/11] gdbstub: Introduce gdb_handle_detach_user() Ilya Leoshkevich
2024-02-16 13:05 ` [PATCH v3 10/11] gdbstub: Implement follow-fork-mode child Ilya Leoshkevich
2024-02-16 13:05 ` [PATCH v3 11/11] tests/tcg: Add two follow-fork-mode tests Ilya Leoshkevich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.