diff options
| author | Ilya Leoshkevich <iii@linux.ibm.com> | 2024-02-07 16:38:11 +0000 |
|---|---|---|
| committer | Alex Bennée <alex.bennee@linaro.org> | 2024-02-09 17:52:40 +0000 |
| commit | 046f143c51128d130fac8ed1ddda1bae33c4bb4b (patch) | |
| tree | 2f4e77d3b090acc1855895dedff5f601f9ee74bf /gdbstub/internals.h | |
| parent | 0a0d87c9b851338934f3018e9c18139b6c26f405 (diff) | |
| download | focaccia-qemu-046f143c51128d130fac8ed1ddda1bae33c4bb4b.tar.gz focaccia-qemu-046f143c51128d130fac8ed1ddda1bae33c4bb4b.zip | |
gdbstub: Implement catching syscalls
GDB supports stopping on syscall entry and exit using the "catch syscall" command. It relies on 3 packets, which are currently not supported by QEMU: * qSupported:QCatchSyscalls+ [1] * QCatchSyscalls: [2] * T05syscall_entry: and T05syscall_return: [3] Implement generation and handling of these packets. [1] https://sourceware.org/gdb/current/onlinedocs/gdb.html/General-Query-Packets.html#qSupported [2] https://sourceware.org/gdb/current/onlinedocs/gdb.html/General-Query-Packets.html#QCatchSyscalls [3] https://sourceware.org/gdb/current/onlinedocs/gdb.html/Stop-Reply-Packets.html Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Message-Id: <20240202152506.279476-5-iii@linux.ibm.com> [AJB: GString -> g_strdup_printf] Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20240207163812.3231697-14-alex.bennee@linaro.org>
Diffstat (limited to 'gdbstub/internals.h')
| -rw-r--r-- | gdbstub/internals.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gdbstub/internals.h b/gdbstub/internals.h index aeb0d9b537..56b7c13b75 100644 --- a/gdbstub/internals.h +++ b/gdbstub/internals.h @@ -195,6 +195,7 @@ void gdb_handle_v_file_close(GArray *params, void *user_ctx); /* user */ void gdb_handle_v_file_pread(GArray *params, void *user_ctx); /* user */ void gdb_handle_v_file_readlink(GArray *params, void *user_ctx); /* user */ 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_attached(GArray *params, void *user_ctx); /* both */ |