From: Ilya Leoshkevich <iii@linux.ibm.com>
To: Warner Losh <imp@bsdimp.com>, Riku Voipio <riku.voipio@iki.fi>,
Laurent Vivier <laurent@vivier.eu>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <richard.henderson@linaro.org>
Cc: "Kyle Evans" <kevans@freebsd.org>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
qemu-devel@nongnu.org, "Ilya Leoshkevich" <iii@linux.ibm.com>
Subject: [PATCH 0/8] gdbstub: Allow late attachment
Date: Thu, 24 Oct 2024 21:59:07 +0200 [thread overview]
Message-ID: <20241024200031.80327-1-iii@linux.ibm.com> (raw)
Hi,
This series adds the ability to attach GDB to a running qemu-user
instance. This is useful for debugging multi-process apps.
Patches 1 and 2 implement a small related feature: the ability to
create individual UNIX sockets for each child process.
Patches 3-5 add the required infrastructure. In particular, we need
to reserve a host signal for waking up threads, as discussed in [1].
By the way, the problem with atomicity of checking for pending signals
and invoking syscalls that I'm describing in that thread seems to
have already been solved by the safe_syscall infrastructure, so the
changes are fairly simple.
If this series is accepted, I will rebase the all-stop series on top
of it.
Patch 6 is the implementation, patch 7 is a documentation update,
patch 8 is a test. I tested this series on Linux and only
compile-tested on the BSDs.
Best regards,
Ilya
[1] https://lore.kernel.org/qemu-devel/94ebebf2-e775-4fd2-8fcf-921610261a7e@linaro.org/
Ilya Leoshkevich (8):
gdbstub: Allow the %d placeholder in the socket path
gdbstub: Try unlinking the unix socket before binding
user: Introduce user/signal.h
user: Introduce host_interrupt_signal
osdep: Introduce qemu_kill_thread()
gdbstub: Allow late attachment
docs/user: Document the %d placeholder and suspend=n QEMU_GDB features
tests/tcg: Add late gdbstub attach test
bsd-user/main.c | 1 -
bsd-user/signal-common.h | 1 -
bsd-user/signal.c | 13 ++
docs/user/main.rst | 16 ++-
gdbstub/user.c | 131 +++++++++++++++++++--
include/qemu/osdep.h | 9 ++
include/user/signal.h | 25 ++++
linux-user/main.c | 1 -
linux-user/signal-common.h | 1 -
linux-user/signal.c | 12 ++
linux-user/syscall.c | 1 +
tests/guest-debug/run-test.py | 15 ++-
tests/tcg/multiarch/Makefile.target | 9 +-
tests/tcg/multiarch/gdbstub/late-attach.py | 28 +++++
tests/tcg/multiarch/late-attach.c | 41 +++++++
util/oslib-posix.c | 15 +++
16 files changed, 299 insertions(+), 20 deletions(-)
create mode 100644 include/user/signal.h
create mode 100644 tests/tcg/multiarch/gdbstub/late-attach.py
create mode 100644 tests/tcg/multiarch/late-attach.c
--
2.47.0
next reply other threads:[~2024-10-24 20:01 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-24 19:59 Ilya Leoshkevich [this message]
2024-10-24 19:59 ` [PATCH 1/8] gdbstub: Allow the %d placeholder in the socket path Ilya Leoshkevich
2024-11-05 14:41 ` Richard Henderson
2024-11-05 15:04 ` Warner Losh
2024-10-24 19:59 ` [PATCH 2/8] gdbstub: Try unlinking the unix socket before binding Ilya Leoshkevich
2024-10-24 19:59 ` [PATCH 3/8] user: Introduce user/signal.h Ilya Leoshkevich
2024-11-05 14:43 ` Richard Henderson
2024-11-05 15:05 ` Warner Losh
2024-10-24 19:59 ` [PATCH 4/8] user: Introduce host_interrupt_signal Ilya Leoshkevich
2024-11-05 14:45 ` Richard Henderson
2024-11-05 15:39 ` Warner Losh
2024-11-05 15:50 ` Ilya Leoshkevich
2024-11-05 22:30 ` Richard Henderson
2024-11-05 22:48 ` Ilya Leoshkevich
2024-11-05 23:53 ` Warner Losh
2024-10-24 19:59 ` [PATCH 5/8] osdep: Introduce qemu_kill_thread() Ilya Leoshkevich
2024-11-05 14:49 ` Richard Henderson
2024-11-05 15:42 ` Warner Losh
2024-10-24 19:59 ` [PATCH 6/8] gdbstub: Allow late attachment Ilya Leoshkevich
2024-10-24 19:59 ` [PATCH 7/8] docs/user: Document the %d placeholder and suspend=n QEMU_GDB features Ilya Leoshkevich
2024-10-24 19:59 ` [PATCH 8/8] tests/tcg: Add late gdbstub attach test Ilya Leoshkevich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241024200031.80327-1-iii@linux.ibm.com \
--to=iii@linux.ibm.com \
--cc=imp@bsdimp.com \
--cc=kevans@freebsd.org \
--cc=laurent@vivier.eu \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=riku.voipio@iki.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.