All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ilya Leoshkevich <iii@linux.ibm.com>
To: "Warner Losh" <imp@bsdimp.com>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Laurent Vivier" <laurent@vivier.eu>
Cc: "Kyle Evans" <kevans@freebsd.org>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	qemu-devel@nongnu.org, "Ilya Leoshkevich" <iii@linux.ibm.com>
Subject: [PATCH v2 09/11] gdbstub: Introduce gdb_handle_detach_user()
Date: Mon,  5 Feb 2024 12:22:23 +0100	[thread overview]
Message-ID: <20240205112251.121569-10-iii@linux.ibm.com> (raw)
In-Reply-To: <20240205112251.121569-1-iii@linux.ibm.com>

The upcoming follow-fork-mode child support needs to perform certain
actions when GDB detaches from the stopped parent or the stopped child.
Introduce a user-specific hook for this.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
 gdbstub/gdbstub.c   | 6 ++++++
 gdbstub/internals.h | 1 +
 gdbstub/user.c      | 5 +++++
 3 files changed, 12 insertions(+)

diff --git a/gdbstub/gdbstub.c b/gdbstub/gdbstub.c
index adcd977cd57..46f5dd47e9e 100644
--- a/gdbstub/gdbstub.c
+++ b/gdbstub/gdbstub.c
@@ -991,6 +991,12 @@ static void handle_detach(GArray *params, void *user_ctx)
         pid = get_param(params, 0)->val_ul;
     }
 
+#ifdef CONFIG_USER_ONLY
+    if (gdb_handle_detach_user(pid)) {
+        return;
+    }
+#endif
+
     process = gdb_get_process(pid);
     gdb_process_breakpoint_remove_all(process);
     process->attached = false;
diff --git a/gdbstub/internals.h b/gdbstub/internals.h
index b4905c7181a..b4724598384 100644
--- a/gdbstub/internals.h
+++ b/gdbstub/internals.h
@@ -198,6 +198,7 @@ void gdb_handle_query_xfer_exec_file(GArray *params, void *user_ctx); /* user */
 void gdb_handle_set_catch_syscalls(GArray *params, void *user_ctx); /* user */
 void gdb_handle_query_supported_user(const char *gdb_supported); /* user */
 bool gdb_handle_set_thread_user(uint32_t pid, uint32_t tid); /* user */
+bool gdb_handle_detach_user(uint32_t pid); /* user */
 
 void gdb_handle_query_attached(GArray *params, void *user_ctx); /* both */
 
diff --git a/gdbstub/user.c b/gdbstub/user.c
index ee6b47b9b9c..6f108e60839 100644
--- a/gdbstub/user.c
+++ b/gdbstub/user.c
@@ -391,6 +391,11 @@ bool gdb_handle_set_thread_user(uint32_t pid, uint32_t tid)
     return false;
 }
 
+bool gdb_handle_detach_user(uint32_t pid)
+{
+    return false;
+}
+
 /*
  * Execution state helpers
  */
-- 
2.43.0



  parent reply	other threads:[~2024-02-05 11:23 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-05 11:22 [PATCH v2 00/11] gdbstub: Implement follow-fork-mode child Ilya Leoshkevich
2024-02-05 11:22 ` [PATCH v2 01/11] gdbstub: Support disablement in a multi-threaded process Ilya Leoshkevich
2024-02-05 11:22 ` [PATCH v2 02/11] {linux,bsd}-user: Update ts_tid after fork() Ilya Leoshkevich
2024-02-05 11:22 ` [PATCH v2 03/11] gdbstub: Introduce gdbserver_fork_start() Ilya Leoshkevich
2024-02-05 11:22 ` [PATCH v2 04/11] {linux,bsd}-user: Pass pid to fork_end() Ilya Leoshkevich
2024-02-05 11:22 ` [PATCH v2 05/11] {linux,bsd}-user: Pass pid to gdbserver_fork() Ilya Leoshkevich
2024-02-05 11:22 ` [PATCH v2 06/11] gdbstub: Call gdbserver_fork() both in parent and in child Ilya Leoshkevich
2024-02-05 11:22 ` [PATCH v2 07/11] gdbstub: Introduce gdb_handle_query_supported_user() Ilya Leoshkevich
2024-02-05 11:22 ` [PATCH v2 08/11] gdbstub: Introduce gdb_handle_set_thread_user() Ilya Leoshkevich
2024-02-05 11:22 ` Ilya Leoshkevich [this message]
2024-02-05 11:22 ` [PATCH v2 10/11] gdbstub: Implement follow-fork-mode child Ilya Leoshkevich
2024-02-05 11:22 ` [PATCH v2 11/11] tests/tcg: Add two follow-fork-mode tests 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=20240205112251.121569-10-iii@linux.ibm.com \
    --to=iii@linux.ibm.com \
    --cc=alex.bennee@linaro.org \
    --cc=imp@bsdimp.com \
    --cc=kevans@freebsd.org \
    --cc=laurent@vivier.eu \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /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.