[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 1/8] gdbstub: Allow the %d placeholder in the socket path
From: |
Ilya Leoshkevich |
Subject: |
[PATCH v6 1/8] gdbstub: Allow the %d placeholder in the socket path |
Date: |
Fri, 17 Jan 2025 01:11:26 +0100 |
Just like for QEMU_LOG_FILENAME, replace %d with PID in the GDB socket
path. This allows running multi-process applications with, e.g.,
export QEMU_GDB=/tmp/qemu-%d.sock. Currently this is not possible,
since the first process will cause the subsequent ones to fail due to
not being able to bind() the GDB socket.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Warner Losh <imp@bsdimp.com>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
gdbstub/user.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/gdbstub/user.c b/gdbstub/user.c
index c2bdfc3d491..fd29d595f40 100644
--- a/gdbstub/user.c
+++ b/gdbstub/user.c
@@ -317,9 +317,19 @@ static bool gdb_accept_socket(int gdb_fd)
static int gdbserver_open_socket(const char *path)
{
+ g_autoptr(GString) buf = g_string_new("");
struct sockaddr_un sockaddr = {};
+ char *pid_placeholder;
int fd, ret;
+ pid_placeholder = strstr(path, "%d");
+ if (pid_placeholder != NULL) {
+ g_string_append_len(buf, path, pid_placeholder - path);
+ g_string_append_printf(buf, "%d", qemu_get_thread_id());
+ g_string_append(buf, pid_placeholder + 2);
+ path = buf->str;
+ }
+
fd = socket(AF_UNIX, SOCK_STREAM, 0);
if (fd < 0) {
perror("create socket");
--
2.47.1
- [PATCH v6 0/8] gdbstub: Allow late attachment, Ilya Leoshkevich, 2025/01/16
- [PATCH v6 4/8] user: Introduce host_interrupt_signal, Ilya Leoshkevich, 2025/01/16
- [PATCH v6 6/8] gdbstub: Allow late attachment, Ilya Leoshkevich, 2025/01/16
- [PATCH v6 2/8] gdbstub: Try unlinking the unix socket before binding, Ilya Leoshkevich, 2025/01/16
- [PATCH v6 1/8] gdbstub: Allow the %d placeholder in the socket path,
Ilya Leoshkevich <=
- [PATCH v6 5/8] osdep: Introduce qemu_kill_thread(), Ilya Leoshkevich, 2025/01/16
- [PATCH v6 3/8] user: Introduce user/signal.h, Ilya Leoshkevich, 2025/01/16
- [PATCH v6 8/8] tests/tcg: Add late gdbstub attach test, Ilya Leoshkevich, 2025/01/16
- [PATCH v6 7/8] docs/user: Document the %d placeholder and suspend=n QEMU_GDB features, Ilya Leoshkevich, 2025/01/16
- Re: [PATCH v6 0/8] gdbstub: Allow late attachment, Alex Bennée, 2025/01/17