gdbstub: Try unlinking the unix socket before binding
authorIlya Leoshkevich <iii@linux.ibm.com>
Fri, 7 Feb 2025 15:31:06 +0000 (15:31 +0000)
committerAlex Bennée <alex.bennee@linaro.org>
Mon, 10 Feb 2025 13:47:58 +0000 (13:47 +0000)
commitfccb744f41c69fec6fd92225fe907c6e69de5d44
treecd6b4d4bf739ce9c3862d63eccc865536a3c0980
parent9853485dd420a567500019752d011cc8d38f7199
gdbstub: Try unlinking the unix socket before binding

In case an emulated process execve()s another emulated process, bind()
will fail, because the socket already exists. So try deleting it. Use
the existing unix_listen() function which does this. Link qemu-user
with qemu-sockets.c and add the monitor_get_fd() stub.

Note that it is not possible to handle this in do_execv(): deleting
gdbserver_user_state.socket_path before safe_execve() is not correct,
because the latter may fail, and afterwards we may lose control.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20250117001542.8290-3-iii@linux.ibm.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20250207153112.3939799-12-alex.bennee@linaro.org>
gdbstub/user.c
stubs/meson.build
stubs/monitor-fd.c [new file with mode: 0644]
util/meson.build