mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
gdbstub: move syscall handling to new file
Our GDB syscall support is the last chunk of code that needs target specific support so move it to a new file. We take the opportunity to move the syscall state into its own singleton instance and add in a few helpers for the main gdbstub to interact with the module. I also moved the gdb_exit() declaration into syscalls.h as it feels pretty related and most of the callers of it treat it as such. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20230302190846.2593720-22-alex.bennee@linaro.org> Message-Id: <20230303025805.625589-22-richard.henderson@linaro.org>
This commit is contained in:
parent
4ea5fe997d
commit
c566080cd3
17 changed files with 387 additions and 288 deletions
|
@ -15,6 +15,7 @@
|
|||
#include "qemu/error-report.h"
|
||||
#include "qemu/cutils.h"
|
||||
#include "exec/gdbstub.h"
|
||||
#include "gdbstub/syscalls.h"
|
||||
#include "exec/hwaddr.h"
|
||||
#include "exec/tb-flush.h"
|
||||
#include "sysemu/cpus.h"
|
||||
|
@ -113,9 +114,9 @@ static void gdb_vm_state_change(void *opaque, bool running, RunState state)
|
|||
if (running || gdbserver_state.state == RS_INACTIVE) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Is there a GDB syscall waiting to be sent? */
|
||||
if (gdbserver_state.current_syscall_cb) {
|
||||
gdb_put_packet(gdbserver_state.syscall_buf);
|
||||
if (gdb_handled_syscall()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -384,7 +385,7 @@ int gdbserver_start(const char *device)
|
|||
}
|
||||
gdbserver_state.state = chr ? RS_IDLE : RS_INACTIVE;
|
||||
gdbserver_system_state.mon_chr = mon_chr;
|
||||
gdbserver_state.current_syscall_cb = NULL;
|
||||
gdb_syscall_reset();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue