diff options
author | Ilya Leoshkevich <iii@linux.ibm.com> | 2024-03-05 12:09:41 +0000 |
---|---|---|
committer | Alex Bennée <alex.bennee@linaro.org> | 2024-03-06 12:35:19 +0000 |
commit | 3d6ed98da82e0bb2384bfbc83fadb518271fdbca (patch) | |
tree | f0c93189a3ada0049ed12bff628eea735d2cece6 | |
parent | d4e1369abe67a4ffae2abbbd943aaeadc9595cc2 (diff) | |
download | qemu-3d6ed98da82e0bb2384bfbc83fadb518271fdbca.zip qemu-3d6ed98da82e0bb2384bfbc83fadb518271fdbca.tar.gz qemu-3d6ed98da82e0bb2384bfbc83fadb518271fdbca.tar.bz2 |
gdbstub: Introduce gdbserver_fork_start()
The upcoming follow-fork-mode child support requires knowing when
fork() is about to happen in order to initialize its state. Add a hook
for that.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Message-Id: <20240219141628.246823-5-iii@linux.ibm.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20240305121005.3528075-6-alex.bennee@linaro.org>
-rw-r--r-- | bsd-user/main.c | 1 | ||||
-rw-r--r-- | gdbstub/user.c | 4 | ||||
-rw-r--r-- | include/gdbstub/user.h | 5 | ||||
-rw-r--r-- | linux-user/main.c | 1 |
4 files changed, 11 insertions, 0 deletions
diff --git a/bsd-user/main.c b/bsd-user/main.c index e39eef3..517c6b3 100644 --- a/bsd-user/main.c +++ b/bsd-user/main.c @@ -113,6 +113,7 @@ void fork_start(void) start_exclusive(); cpu_list_lock(); mmap_fork_start(); + gdbserver_fork_start(); } void fork_end(int child) diff --git a/gdbstub/user.c b/gdbstub/user.c index 3ce20b7..536fb43 100644 --- a/gdbstub/user.c +++ b/gdbstub/user.c @@ -356,6 +356,10 @@ int gdbserver_start(const char *port_or_path) return -1; } +void gdbserver_fork_start(void) +{ +} + static void disable_gdbstub(CPUState *thread_cpu) { CPUState *cpu; diff --git a/include/gdbstub/user.h b/include/gdbstub/user.h index 68b6534..e33f8d9 100644 --- a/include/gdbstub/user.h +++ b/include/gdbstub/user.h @@ -46,6 +46,11 @@ static inline int gdb_handlesig(CPUState *cpu, int sig) void gdb_signalled(CPUArchState *as, int sig); /** + * gdbserver_fork_start() - inform gdb of the upcoming fork() + */ +void gdbserver_fork_start(void); + +/** * gdbserver_fork() - disable gdb stub for child processes. * @cs: CPU */ diff --git a/linux-user/main.c b/linux-user/main.c index 699da77..755c566 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -145,6 +145,7 @@ void fork_start(void) mmap_fork_start(); cpu_list_lock(); qemu_plugin_user_prefork_lock(); + gdbserver_fork_start(); } void fork_end(int child) |