The QEMU GDB stub does not expose the ZA storage SME register to GDB via the remote serial protocol, which can be a useful functionality to debug SME code. To provide this functionality in Aarch64 target, this patch registers the SME register set with the GDB stub. To do so, this patch implements the aarch64_gdb_get_sme_reg() and aarch64_gdb_set_sme_reg() functions to specify how to get and set the SME registers, and the arm_gen_dynamic_smereg_feature() function to generate the target description in XML format to indicate the target architecture supports SME. Finally, this patch includes a dyn_smereg_feature structure to hold this GDB XML description of the SME registers for each CPU.
Additionally, this patch series increases the value of MAX_PACKET_LENGTH to allow for remote GDB debugging of the ZA register when the vector length is maximal. Furthermore, based on suggestions from v4 review, this patch also changes GDBState's line_buf to a dynamically re-sizeable GString. This patch now also includes a test case for testing SME register exposure to GDB, based off of the existing SVE test case for the gdbstub. Vacha Bhavsar (4): target/arm: Increase MAX_PACKET_LENGTH for SME ZA remote gdb debugging target/arm: Change GDBState's line_buf to a GString target/arm: Added support for SME register exposure to GDB target/arm: Added test case for SME register exposure to GDB configure | 6 ++ gdbstub/gdbstub.c | 25 +++--- gdbstub/internals.h | 25 +++++- target/arm/cpu.h | 1 + target/arm/gdbstub.c | 6 ++ target/arm/gdbstub64.c | 122 ++++++++++++++++++++++++++ target/arm/internals.h | 3 + tests/tcg/aarch64/Makefile.target | 23 ++++- tests/tcg/aarch64/gdbstub/test-sme.py | 119 +++++++++++++++++++++++++ 9 files changed, 314 insertions(+), 16 deletions(-) create mode 100644 tests/tcg/aarch64/gdbstub/test-sme.py -- 2.34.1