target/arm: Report pauth information to gdb as 'pauth_v2'

So that we can avoid the "older gdb crashes" problem described in
commit 5787d17a42 and which caused us to disable reporting pauth
information via the gdbstub, newer gdb is going to implement support
for recognizing the pauth information via a new feature name:
 org.gnu.gdb.aarch64.pauth_v2

Older gdb won't recognize this feature name, so we can re-enable the
pauth support under the new name without risking them crashing.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20230406150827.3322670-1-peter.maydell@linaro.org
This commit is contained in:
Peter Maydell 2023-04-20 10:21:16 +01:00
parent 0f40f7cabe
commit 7bdd67a560
2 changed files with 5 additions and 6 deletions

View File

@ -6,7 +6,7 @@
notice and this notice are preserved. --> notice and this notice are preserved. -->
<!DOCTYPE feature SYSTEM "gdb-target.dtd"> <!DOCTYPE feature SYSTEM "gdb-target.dtd">
<feature name="org.gnu.gdb.aarch64.pauth"> <feature name="org.gnu.gdb.aarch64.pauth_v2">
<reg name="pauth_dmask" bitsize="64"/> <reg name="pauth_dmask" bitsize="64"/>
<reg name="pauth_cmask" bitsize="64"/> <reg name="pauth_cmask" bitsize="64"/>
<reg name="pauth_dmask_high" bitsize="64"/> <reg name="pauth_dmask_high" bitsize="64"/>

View File

@ -521,18 +521,17 @@ void arm_cpu_register_gdb_regs_for_features(ARMCPU *cpu)
aarch64_gdb_set_fpu_reg, aarch64_gdb_set_fpu_reg,
34, "aarch64-fpu.xml", 0); 34, "aarch64-fpu.xml", 0);
} }
#if 0
/* /*
* GDB versions 9 through 12 have a bug which means they will * Note that we report pauth information via the feature name
* crash if they see this XML from QEMU; disable it for the 8.0 * org.gnu.gdb.aarch64.pauth_v2, not org.gnu.gdb.aarch64.pauth.
* release, pending a better solution. * GDB versions 9 through 12 have a bug where they will crash
* if they see the latter XML from QEMU.
*/ */
if (isar_feature_aa64_pauth(&cpu->isar)) { if (isar_feature_aa64_pauth(&cpu->isar)) {
gdb_register_coprocessor(cs, aarch64_gdb_get_pauth_reg, gdb_register_coprocessor(cs, aarch64_gdb_get_pauth_reg,
aarch64_gdb_set_pauth_reg, aarch64_gdb_set_pauth_reg,
4, "aarch64-pauth.xml", 0); 4, "aarch64-pauth.xml", 0);
} }
#endif
#endif #endif
} else { } else {
if (arm_feature(env, ARM_FEATURE_NEON)) { if (arm_feature(env, ARM_FEATURE_NEON)) {