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


Reply via email to