On Fri, Jan 24, 2025 at 6:38 PM Lianbo Jiang <[email protected]> wrote:
> This issue was caused by commit 0f39e33d3504 with the following
> compilation error:
>
> frame.c: In function ‘CORE_ADDR frame_unwind_pc(frame_info*)’:
> frame.c:982:35: error: cannot convert ‘CORE_ADDR*’ {aka ‘long long
> unsigned int*’} to ‘ulong*’ {aka ‘long unsigned int*’}
> 982 | crash_decode_ptrauth_pc(&pc);
> | ^~~
> | |
> | CORE_ADDR* {aka long long
> unsigned int*}
> frame.c:948:48: note: initializing argument 1 of ‘void
> crash_decode_ptrauth_pc(ulong*)’
> 948 | extern "C" void crash_decode_ptrauth_pc(ulong* pc);
> | ~~~~~~~^~
>
> Fixes: 0f39e33d3504 ("arm64: add pac mask to better support gdb stack
> unwind")
> Reported-by: Guanyou.Chen <[email protected]>
> Signed-off-by: Lianbo Jiang <[email protected]>
> ---
> gdb-10.2.patch | 6 +++---
> gdb_interface.c | 4 ++--
> 2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/gdb-10.2.patch b/gdb-10.2.patch
> index 8f5d7db22840..156df2ed78b5 100644
> --- a/gdb-10.2.patch
> +++ b/gdb-10.2.patch
> @@ -55,7 +55,7 @@ exit 0
> # your system doesn't have fcntl.h in /usr/include (which is where it
> # should be according to Posix).
> -DEFS = @DEFS@
> -+DEFS = -DCRASH_MERGE @DEFS@
> ++DEFS = -DCRASH_MERGE -DTARGET_${CRASH_TARGET} @DEFS@
>
Sorry, It should be:
+DEFS = -DCRASH_MERGE -D${CRASH_TARGET} @DEFS@
Thanks
Lianbo
> GDB_CFLAGS = -I. -I$(srcdir) -I$(srcdir)/config \
> -DLOCALEDIR="\"$(localedir)\"" $(DEFS)
>
> @@ -16222,7 +16222,7 @@ exit 0
> return NULL;
> }
>
> -+#ifdef CRASH_MERGE
> ++#if defined(CRASH_MERGE) && defined(ARM64)
> +extern "C" void crash_decode_ptrauth_pc(ulong* pc);
> +#endif
> +
> @@ -16233,7 +16233,7 @@ exit 0
> try
> {
> pc = gdbarch_unwind_pc (prev_gdbarch, this_frame);
> -+#ifdef CRASH_MERGE
> ++#if defined(CRASH_MERGE) && defined(ARM64)
> + crash_decode_ptrauth_pc(&pc);
> +#endif
> pc_p = true;
> diff --git a/gdb_interface.c b/gdb_interface.c
> index e108d097ee5f..c2e99f5c156a 100644
> --- a/gdb_interface.c
> +++ b/gdb_interface.c
> @@ -1084,12 +1084,12 @@ int crash_get_current_task_reg (int regno, const
> char *regname,
> }
>
> /* arm64 kernel lr maybe has patuh */
> +#ifdef ARM64
> void crash_decode_ptrauth_pc(ulong *pc);
> void crash_decode_ptrauth_pc(ulong *pc)
> {
> -#ifdef ARM64
> struct machine_specific *ms = machdep->machspec;
> if (is_kernel_text(*pc | ms->CONFIG_ARM64_KERNELPACMASK))
> *pc |= ms->CONFIG_ARM64_KERNELPACMASK;
> -#endif /* !ARM64 */
> }
> +#endif /* !ARM64 */
> --
> 2.47.1
>
>
--
Crash-utility mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
Contribution Guidelines: https://github.com/crash-utility/crash/wiki