[PATCH v2 00/13] gdbstub: Always infer base register index from GDB XML

Philippe Mathieu-Daudé posted 13 patches 4 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260310155329.48772-1-philmd@linaro.org
Maintainers: Warner Losh <imp@bsdimp.com>, Kyle Evans <kevans@freebsd.org>, Laurent Vivier <laurent@vivier.eu>, Pierrick Bouvier <pierrick.bouvier@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, Zhao Liu <zhao1.liu@intel.com>, Song Gao <gaosong@loongson.cn>, Bibo Mao <maobibo@loongson.cn>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <alistair.francis@wdc.com>, Weiwei Li <liwei1518@gmail.com>, Daniel Henrique Barboza <dbarboza@ventanamicro.com>, Liu Zhiwei <zhiwei_liu@linux.alibaba.com>, Thomas Huth <thuth@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, "Daniel P. Berrangé" <berrange@redhat.com>, Markus Armbruster <armbru@redhat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, John Snow <jsnow@redhat.com>, Cleber Rosa <crosa@redhat.com>, Peter Maydell <peter.maydell@linaro.org>, Brian Cain <brian.cain@oss.qualcomm.com>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Nicholas Piggin <npiggin@gmail.com>, Chinmay Rath <rathc@linux.ibm.com>, Glenn Miles <milesg@linux.ibm.com>, Richard Henderson <richard.henderson@linaro.org>, Ilya Leoshkevich <iii@linux.ibm.com>, David Hildenbrand <david@kernel.org>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, Artyom Tarasenko <atar4qemu@gmail.com>
There is a newer version of this series
MAINTAINERS                                   | 19 +++---
docs/devel/codebase.rst                       |  2 -
configs/targets/aarch64-bsd-user.mak          |  2 +-
configs/targets/aarch64-linux-user.mak        |  2 +-
configs/targets/aarch64-softmmu.mak           |  2 +-
configs/targets/aarch64_be-linux-user.mak     |  2 +-
configs/targets/alpha-linux-user.mak          |  2 +-
configs/targets/alpha-softmmu.mak             |  2 +-
configs/targets/arm-bsd-user.mak              |  2 +-
configs/targets/arm-linux-user.mak            |  2 +-
configs/targets/arm-softmmu.mak               |  2 +-
configs/targets/armeb-linux-user.mak          |  2 +-
configs/targets/avr-softmmu.mak               |  2 +-
configs/targets/hexagon-linux-user.mak        |  2 +-
configs/targets/i386-bsd-user.mak             |  2 +-
configs/targets/i386-linux-user.mak           |  2 +-
configs/targets/i386-softmmu.mak              |  2 +-
configs/targets/loongarch64-linux-user.mak    |  2 +-
configs/targets/loongarch64-softmmu.mak       |  2 +-
configs/targets/m68k-linux-user.mak           |  2 +-
configs/targets/m68k-softmmu.mak              |  2 +-
configs/targets/microblaze-linux-user.mak     |  2 +-
configs/targets/microblaze-softmmu.mak        |  2 +-
configs/targets/microblazeel-linux-user.mak   |  2 +-
configs/targets/or1k-linux-user.mak           |  2 +-
configs/targets/or1k-softmmu.mak              |  2 +-
configs/targets/ppc-linux-user.mak            |  2 +-
configs/targets/ppc-softmmu.mak               |  2 +-
configs/targets/ppc64-linux-user.mak          |  2 +-
configs/targets/ppc64-softmmu.mak             |  2 +-
configs/targets/ppc64le-linux-user.mak        |  2 +-
configs/targets/riscv32-linux-user.mak        |  2 +-
configs/targets/riscv32-softmmu.mak           |  2 +-
configs/targets/riscv64-bsd-user.mak          |  2 +-
configs/targets/riscv64-linux-user.mak        |  2 +-
configs/targets/riscv64-softmmu.mak           |  2 +-
configs/targets/rx-softmmu.mak                |  2 +-
configs/targets/s390x-linux-user.mak          |  2 +-
configs/targets/s390x-softmmu.mak             |  2 +-
configs/targets/sparc-linux-user.mak          |  2 +-
configs/targets/sparc-softmmu.mak             |  2 +-
configs/targets/sparc32plus-linux-user.mak    |  2 +-
configs/targets/sparc64-linux-user.mak        |  2 +-
configs/targets/sparc64-softmmu.mak           |  2 +-
configs/targets/x86_64-bsd-user.mak           |  2 +-
configs/targets/x86_64-linux-user.mak         |  2 +-
configs/targets/x86_64-softmmu.mak            |  2 +-
meson.build                                   | 12 +---
include/exec/gdbstub.h                        |  4 +-
stubs/gdbstub.c => gdbstub/gdb-xml-stub.c     |  0
gdbstub/gdbstub.c                             | 61 +++++++++++--------
target/arm/gdbstub.c                          | 21 +++----
target/arm/gdbstub64.c                        | 19 +++---
target/hexagon/cpu.c                          |  2 +-
target/i386/gdbstub.c                         | 12 ++--
target/loongarch/gdbstub.c                    |  6 +-
target/m68k/helper.c                          |  4 +-
target/microblaze/cpu.c                       |  3 +-
target/ppc/gdbstub.c                          | 11 ++--
target/riscv/gdbstub.c                        | 18 ++----
target/s390x/gdbstub.c                        | 15 +++--
target/sparc/gdbstub.c                        | 12 ++--
{gdb-xml => gdbstub/gdb-xml}/aarch64-core.xml |  0
{gdb-xml => gdbstub/gdb-xml}/aarch64-fpu.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/aarch64-mte.xml  |  0
.../gdb-xml}/aarch64-pauth.xml                |  0
{gdb-xml => gdbstub/gdb-xml}/aarch64-sme2.xml |  0
{gdb-xml => gdbstub/gdb-xml}/alpha-core.xml   |  0
{gdb-xml => gdbstub/gdb-xml}/arm-core.xml     |  0
.../gdb-xml}/arm-m-profile-mve.xml            |  0
.../gdb-xml}/arm-m-profile.xml                |  0
{gdb-xml => gdbstub/gdb-xml}/arm-neon.xml     |  0
.../gdb-xml}/arm-vfp-sysregs.xml              |  0
{gdb-xml => gdbstub/gdb-xml}/arm-vfp.xml      |  0
{gdb-xml => gdbstub/gdb-xml}/arm-vfp3.xml     |  0
{gdb-xml => gdbstub/gdb-xml}/avr-cpu.xml      |  0
{gdb-xml => gdbstub/gdb-xml}/cf-core.xml      |  0
{gdb-xml => gdbstub/gdb-xml}/cf-fp.xml        |  2 +-
{gdb-xml => gdbstub/gdb-xml}/hexagon-core.xml |  0
{gdb-xml => gdbstub/gdb-xml}/hexagon-hvx.xml  |  0
.../gdb-xml}/i386-32bit-linux.xml             |  0
{gdb-xml => gdbstub/gdb-xml}/i386-32bit.xml   |  0
.../gdb-xml}/i386-64bit-apx.xml               |  0
.../gdb-xml}/i386-64bit-linux.xml             |  0
{gdb-xml => gdbstub/gdb-xml}/i386-64bit.xml   |  0
.../gdb-xml}/loongarch-base32.xml             |  0
.../gdb-xml}/loongarch-base64.xml             |  0
.../gdb-xml}/loongarch-fpu.xml                |  0
.../gdb-xml}/loongarch-lasx.xml               |  0
.../gdb-xml}/loongarch-lsx.xml                |  0
{gdb-xml => gdbstub/gdb-xml}/m68k-core.xml    |  0
{gdb-xml => gdbstub/gdb-xml}/m68k-fp.xml      |  2 +-
.../gdb-xml}/microblaze-core.xml              |  0
.../gdb-xml}/microblaze-stack-protect.xml     |  0
{gdb-xml => gdbstub/gdb-xml}/or1k-core.xml    |  0
.../gdb-xml}/power-altivec.xml                |  0
{gdb-xml => gdbstub/gdb-xml}/power-core.xml   |  0
{gdb-xml => gdbstub/gdb-xml}/power-fpu.xml    |  0
{gdb-xml => gdbstub/gdb-xml}/power-spe.xml    |  0
{gdb-xml => gdbstub/gdb-xml}/power-vsx.xml    |  0
{gdb-xml => gdbstub/gdb-xml}/power64-core.xml |  0
.../gdb-xml}/riscv-32bit-cpu.xml              |  0
.../gdb-xml}/riscv-32bit-fpu.xml              |  0
.../gdb-xml}/riscv-32bit-virtual.xml          |  0
.../gdb-xml}/riscv-64bit-cpu.xml              |  0
.../gdb-xml}/riscv-64bit-fpu.xml              |  0
.../gdb-xml}/riscv-64bit-virtual.xml          |  0
{gdb-xml => gdbstub/gdb-xml}/rx-core.xml      |  0
{gdb-xml => gdbstub/gdb-xml}/s390-acr.xml     |  0
{gdb-xml => gdbstub/gdb-xml}/s390-cr.xml      |  0
{gdb-xml => gdbstub/gdb-xml}/s390-fpr.xml     |  0
{gdb-xml => gdbstub/gdb-xml}/s390-gs.xml      |  0
.../gdb-xml}/s390-virt-kvm.xml                |  0
{gdb-xml => gdbstub/gdb-xml}/s390-virt.xml    |  0
{gdb-xml => gdbstub/gdb-xml}/s390-vx.xml      |  0
{gdb-xml => gdbstub/gdb-xml}/s390x-core64.xml |  0
{gdb-xml => gdbstub/gdb-xml}/sparc32-cp0.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/sparc32-cpu.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/sparc32-fpu.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/sparc64-cp0.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/sparc64-cpu.xml  |  0
{gdb-xml => gdbstub/gdb-xml}/sparc64-fpu.xml  |  0
gdbstub/meson.build                           | 23 +++++++
gdbstub/trace-events                          |  6 ++
scripts/feature_to_c.py                       | 14 +++--
stubs/meson.build                             |  2 -
126 files changed, 179 insertions(+), 181 deletions(-)
rename stubs/gdbstub.c => gdbstub/gdb-xml-stub.c (100%)
rename {gdb-xml => gdbstub/gdb-xml}/aarch64-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/aarch64-fpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/aarch64-mte.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/aarch64-pauth.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/aarch64-sme2.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/alpha-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/arm-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/arm-m-profile-mve.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/arm-m-profile.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/arm-neon.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp-sysregs.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp3.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/avr-cpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/cf-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/cf-fp.xml (93%)
rename {gdb-xml => gdbstub/gdb-xml}/hexagon-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/hexagon-hvx.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/i386-32bit-linux.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/i386-32bit.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit-apx.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit-linux.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/loongarch-base32.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/loongarch-base64.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/loongarch-fpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/loongarch-lasx.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/loongarch-lsx.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/m68k-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/m68k-fp.xml (93%)
rename {gdb-xml => gdbstub/gdb-xml}/microblaze-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/microblaze-stack-protect.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/or1k-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/power-altivec.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/power-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/power-fpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/power-spe.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/power-vsx.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/power64-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-cpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-fpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-virtual.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-cpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-fpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-virtual.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/rx-core.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390-acr.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390-cr.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390-fpr.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390-gs.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390-virt-kvm.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390-virt.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390-vx.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/s390x-core64.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/sparc32-cp0.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/sparc32-cpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/sparc32-fpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/sparc64-cp0.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/sparc64-cpu.xml (100%)
rename {gdb-xml => gdbstub/gdb-xml}/sparc64-fpu.xml (100%)
[PATCH v2 00/13] gdbstub: Always infer base register index from GDB XML
Posted by Philippe Mathieu-Daudé 4 weeks ago
Generic fix for a latent bug reported by Florian:
https://lore.kernel.org/qemu-devel/e44df309-d40d-46f0-88a8-7ac55f9a3634@fhofhammer.de/

Use the 'regnum' XML tag for feature base register index
(after fixing the incorrect m68k FPU ones).

Include patches from "gdbstub: Generate a single gdbstub-xml.c /
gdb_static_features[]".

Philippe Mathieu-Daudé (13):
  meson: Restrict gdbstub to user/system builds
  target/i386/gdbstub: Remove stale comment
  gdbstub: Simplify gdb_init_cpu() logic
  gdbstub: Add trace events for around XML parsing / generation
  gdbstub: Have scripts/feature_to_c.py generate more verbose output
  gdbstub: Make base register explicit in m68k GDB XML files
  gdbstub: Remove @g_pos argument in gdb_register_coprocessor()
  gdbstub: Emit base_register index in GDBFeature entries
  gdbstub: Use GDBFeature::base_reg in gdb_register_feature()
  gdbstub: Remove GDBRegisterState::base_reg
  gdbstub: Remove 'gdb-xml/' directory prefix in TARGET_XML_FILES
  gdbstub: Move gdb-xml/ within gdbstub/
  gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[]

 MAINTAINERS                                   | 19 +++---
 docs/devel/codebase.rst                       |  2 -
 configs/targets/aarch64-bsd-user.mak          |  2 +-
 configs/targets/aarch64-linux-user.mak        |  2 +-
 configs/targets/aarch64-softmmu.mak           |  2 +-
 configs/targets/aarch64_be-linux-user.mak     |  2 +-
 configs/targets/alpha-linux-user.mak          |  2 +-
 configs/targets/alpha-softmmu.mak             |  2 +-
 configs/targets/arm-bsd-user.mak              |  2 +-
 configs/targets/arm-linux-user.mak            |  2 +-
 configs/targets/arm-softmmu.mak               |  2 +-
 configs/targets/armeb-linux-user.mak          |  2 +-
 configs/targets/avr-softmmu.mak               |  2 +-
 configs/targets/hexagon-linux-user.mak        |  2 +-
 configs/targets/i386-bsd-user.mak             |  2 +-
 configs/targets/i386-linux-user.mak           |  2 +-
 configs/targets/i386-softmmu.mak              |  2 +-
 configs/targets/loongarch64-linux-user.mak    |  2 +-
 configs/targets/loongarch64-softmmu.mak       |  2 +-
 configs/targets/m68k-linux-user.mak           |  2 +-
 configs/targets/m68k-softmmu.mak              |  2 +-
 configs/targets/microblaze-linux-user.mak     |  2 +-
 configs/targets/microblaze-softmmu.mak        |  2 +-
 configs/targets/microblazeel-linux-user.mak   |  2 +-
 configs/targets/or1k-linux-user.mak           |  2 +-
 configs/targets/or1k-softmmu.mak              |  2 +-
 configs/targets/ppc-linux-user.mak            |  2 +-
 configs/targets/ppc-softmmu.mak               |  2 +-
 configs/targets/ppc64-linux-user.mak          |  2 +-
 configs/targets/ppc64-softmmu.mak             |  2 +-
 configs/targets/ppc64le-linux-user.mak        |  2 +-
 configs/targets/riscv32-linux-user.mak        |  2 +-
 configs/targets/riscv32-softmmu.mak           |  2 +-
 configs/targets/riscv64-bsd-user.mak          |  2 +-
 configs/targets/riscv64-linux-user.mak        |  2 +-
 configs/targets/riscv64-softmmu.mak           |  2 +-
 configs/targets/rx-softmmu.mak                |  2 +-
 configs/targets/s390x-linux-user.mak          |  2 +-
 configs/targets/s390x-softmmu.mak             |  2 +-
 configs/targets/sparc-linux-user.mak          |  2 +-
 configs/targets/sparc-softmmu.mak             |  2 +-
 configs/targets/sparc32plus-linux-user.mak    |  2 +-
 configs/targets/sparc64-linux-user.mak        |  2 +-
 configs/targets/sparc64-softmmu.mak           |  2 +-
 configs/targets/x86_64-bsd-user.mak           |  2 +-
 configs/targets/x86_64-linux-user.mak         |  2 +-
 configs/targets/x86_64-softmmu.mak            |  2 +-
 meson.build                                   | 12 +---
 include/exec/gdbstub.h                        |  4 +-
 stubs/gdbstub.c => gdbstub/gdb-xml-stub.c     |  0
 gdbstub/gdbstub.c                             | 61 +++++++++++--------
 target/arm/gdbstub.c                          | 21 +++----
 target/arm/gdbstub64.c                        | 19 +++---
 target/hexagon/cpu.c                          |  2 +-
 target/i386/gdbstub.c                         | 12 ++--
 target/loongarch/gdbstub.c                    |  6 +-
 target/m68k/helper.c                          |  4 +-
 target/microblaze/cpu.c                       |  3 +-
 target/ppc/gdbstub.c                          | 11 ++--
 target/riscv/gdbstub.c                        | 18 ++----
 target/s390x/gdbstub.c                        | 15 +++--
 target/sparc/gdbstub.c                        | 12 ++--
 {gdb-xml => gdbstub/gdb-xml}/aarch64-core.xml |  0
 {gdb-xml => gdbstub/gdb-xml}/aarch64-fpu.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/aarch64-mte.xml  |  0
 .../gdb-xml}/aarch64-pauth.xml                |  0
 {gdb-xml => gdbstub/gdb-xml}/aarch64-sme2.xml |  0
 {gdb-xml => gdbstub/gdb-xml}/alpha-core.xml   |  0
 {gdb-xml => gdbstub/gdb-xml}/arm-core.xml     |  0
 .../gdb-xml}/arm-m-profile-mve.xml            |  0
 .../gdb-xml}/arm-m-profile.xml                |  0
 {gdb-xml => gdbstub/gdb-xml}/arm-neon.xml     |  0
 .../gdb-xml}/arm-vfp-sysregs.xml              |  0
 {gdb-xml => gdbstub/gdb-xml}/arm-vfp.xml      |  0
 {gdb-xml => gdbstub/gdb-xml}/arm-vfp3.xml     |  0
 {gdb-xml => gdbstub/gdb-xml}/avr-cpu.xml      |  0
 {gdb-xml => gdbstub/gdb-xml}/cf-core.xml      |  0
 {gdb-xml => gdbstub/gdb-xml}/cf-fp.xml        |  2 +-
 {gdb-xml => gdbstub/gdb-xml}/hexagon-core.xml |  0
 {gdb-xml => gdbstub/gdb-xml}/hexagon-hvx.xml  |  0
 .../gdb-xml}/i386-32bit-linux.xml             |  0
 {gdb-xml => gdbstub/gdb-xml}/i386-32bit.xml   |  0
 .../gdb-xml}/i386-64bit-apx.xml               |  0
 .../gdb-xml}/i386-64bit-linux.xml             |  0
 {gdb-xml => gdbstub/gdb-xml}/i386-64bit.xml   |  0
 .../gdb-xml}/loongarch-base32.xml             |  0
 .../gdb-xml}/loongarch-base64.xml             |  0
 .../gdb-xml}/loongarch-fpu.xml                |  0
 .../gdb-xml}/loongarch-lasx.xml               |  0
 .../gdb-xml}/loongarch-lsx.xml                |  0
 {gdb-xml => gdbstub/gdb-xml}/m68k-core.xml    |  0
 {gdb-xml => gdbstub/gdb-xml}/m68k-fp.xml      |  2 +-
 .../gdb-xml}/microblaze-core.xml              |  0
 .../gdb-xml}/microblaze-stack-protect.xml     |  0
 {gdb-xml => gdbstub/gdb-xml}/or1k-core.xml    |  0
 .../gdb-xml}/power-altivec.xml                |  0
 {gdb-xml => gdbstub/gdb-xml}/power-core.xml   |  0
 {gdb-xml => gdbstub/gdb-xml}/power-fpu.xml    |  0
 {gdb-xml => gdbstub/gdb-xml}/power-spe.xml    |  0
 {gdb-xml => gdbstub/gdb-xml}/power-vsx.xml    |  0
 {gdb-xml => gdbstub/gdb-xml}/power64-core.xml |  0
 .../gdb-xml}/riscv-32bit-cpu.xml              |  0
 .../gdb-xml}/riscv-32bit-fpu.xml              |  0
 .../gdb-xml}/riscv-32bit-virtual.xml          |  0
 .../gdb-xml}/riscv-64bit-cpu.xml              |  0
 .../gdb-xml}/riscv-64bit-fpu.xml              |  0
 .../gdb-xml}/riscv-64bit-virtual.xml          |  0
 {gdb-xml => gdbstub/gdb-xml}/rx-core.xml      |  0
 {gdb-xml => gdbstub/gdb-xml}/s390-acr.xml     |  0
 {gdb-xml => gdbstub/gdb-xml}/s390-cr.xml      |  0
 {gdb-xml => gdbstub/gdb-xml}/s390-fpr.xml     |  0
 {gdb-xml => gdbstub/gdb-xml}/s390-gs.xml      |  0
 .../gdb-xml}/s390-virt-kvm.xml                |  0
 {gdb-xml => gdbstub/gdb-xml}/s390-virt.xml    |  0
 {gdb-xml => gdbstub/gdb-xml}/s390-vx.xml      |  0
 {gdb-xml => gdbstub/gdb-xml}/s390x-core64.xml |  0
 {gdb-xml => gdbstub/gdb-xml}/sparc32-cp0.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/sparc32-cpu.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/sparc32-fpu.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/sparc64-cp0.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/sparc64-cpu.xml  |  0
 {gdb-xml => gdbstub/gdb-xml}/sparc64-fpu.xml  |  0
 gdbstub/meson.build                           | 23 +++++++
 gdbstub/trace-events                          |  6 ++
 scripts/feature_to_c.py                       | 14 +++--
 stubs/meson.build                             |  2 -
 126 files changed, 179 insertions(+), 181 deletions(-)
 rename stubs/gdbstub.c => gdbstub/gdb-xml-stub.c (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/aarch64-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/aarch64-fpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/aarch64-mte.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/aarch64-pauth.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/aarch64-sme2.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/alpha-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/arm-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/arm-m-profile-mve.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/arm-m-profile.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/arm-neon.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp-sysregs.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/arm-vfp3.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/avr-cpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/cf-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/cf-fp.xml (93%)
 rename {gdb-xml => gdbstub/gdb-xml}/hexagon-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/hexagon-hvx.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/i386-32bit-linux.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/i386-32bit.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit-apx.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit-linux.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/i386-64bit.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/loongarch-base32.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/loongarch-base64.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/loongarch-fpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/loongarch-lasx.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/loongarch-lsx.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/m68k-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/m68k-fp.xml (93%)
 rename {gdb-xml => gdbstub/gdb-xml}/microblaze-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/microblaze-stack-protect.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/or1k-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/power-altivec.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/power-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/power-fpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/power-spe.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/power-vsx.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/power64-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-cpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-fpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/riscv-32bit-virtual.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-cpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-fpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/riscv-64bit-virtual.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/rx-core.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390-acr.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390-cr.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390-fpr.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390-gs.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390-virt-kvm.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390-virt.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390-vx.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/s390x-core64.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/sparc32-cp0.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/sparc32-cpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/sparc32-fpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/sparc64-cp0.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/sparc64-cpu.xml (100%)
 rename {gdb-xml => gdbstub/gdb-xml}/sparc64-fpu.xml (100%)

-- 
2.53.0


Re: [PATCH v2 00/13] gdbstub: Always infer base register index from GDB XML
Posted by Philippe Mathieu-Daudé 4 weeks ago
On 10/3/26 16:53, Philippe Mathieu-Daudé wrote:
> Generic fix for a latent bug reported by Florian:
> https://lore.kernel.org/qemu-devel/e44df309-d40d-46f0-88a8-7ac55f9a3634@fhofhammer.de/


> Philippe Mathieu-Daudé (13):
>    meson: Restrict gdbstub to user/system builds
>    target/i386/gdbstub: Remove stale comment
>    gdbstub: Simplify gdb_init_cpu() logic
>    gdbstub: Add trace events for around XML parsing / generation
>    gdbstub: Have scripts/feature_to_c.py generate more verbose output
>    gdbstub: Make base register explicit in m68k GDB XML files
>    gdbstub: Remove @g_pos argument in gdb_register_coprocessor()
>    gdbstub: Emit base_register index in GDBFeature entries
>    gdbstub: Use GDBFeature::base_reg in gdb_register_feature()
>    gdbstub: Remove GDBRegisterState::base_reg
>    gdbstub: Remove 'gdb-xml/' directory prefix in TARGET_XML_FILES
>    gdbstub: Move gdb-xml/ within gdbstub/
>    gdbstub: Generate a single gdbstub-xml.c / gdb_static_features[]

Rats... PPC fixed but I get on Aarch64:

Python Exception <class 'gdb.MemoryError'>: Cannot access memory at 
address 0x0

I presume an improvement over:

gdb.error: Could not fetch register "APDBKEYLO_EL1"; remote failure 
reply 'E14'

It would be helpful to have the tests report the host GDB version ;)