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:
parent
0f40f7cabe
commit
7bdd67a560
@ -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"/>
|
||||||
|
@ -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)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user