gdbstub: Implement catching syscalls
authorIlya Leoshkevich <iii@linux.ibm.com>
Wed, 7 Feb 2024 16:38:11 +0000 (16:38 +0000)
committerAlex Bennée <alex.bennee@linaro.org>
Fri, 9 Feb 2024 17:52:40 +0000 (17:52 +0000)
commit046f143c51128d130fac8ed1ddda1bae33c4bb4b
tree2f4e77d3b090acc1855895dedff5f601f9ee74bf
parent0a0d87c9b851338934f3018e9c18139b6c26f405
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>
gdbstub/gdbstub.c
gdbstub/internals.h
gdbstub/user.c