From: Klaus Gerlicher Date: Mon, 3 Feb 2025 13:52:40 +0000 (+0000) Subject: aarch64: fix a crash during maintenance print cooked-registers X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5d43cdc1005ce828a2623b41e68649f7565f8b38;p=thirdparty%2Fbinutils-gdb.git aarch64: fix a crash during maintenance print cooked-registers On aarch64 with pauth enabled a crash when can be seen when using "maintenance print cooked-registers". This happens because the register dump code tries to read a pseudo reg that is not handled here because it is supposedly only used in unwinding. Fix this by returning a zero value typed as a built-in uint64. Approved-By: Luis Machado --- diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c index 840f9877361..6e712b12b86 100644 --- a/gdb/aarch64-tdep.c +++ b/gdb/aarch64-tdep.c @@ -3290,6 +3290,9 @@ aarch64_pseudo_read_value (gdbarch *gdbarch, const frame_info_ptr &next_frame, return aarch64_pseudo_read_value_1 (next_frame, pseudo_reg_num, pseudo_offset - AARCH64_SVE_V0_REGNUM); + if (tdep->has_pauth () && pseudo_reg_num == tdep->ra_sign_state_regnum) + return value::zero (builtin_type (gdbarch)->builtin_uint64, lval_register); + gdb_assert_not_reached ("regnum out of bound"); }