On Fri, Jan 24, 2025 at 6:38 PM Lianbo Jiang <lijiang@xxxxxxxxxx> 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 <chenguanyou@xxxxxxxxxx>
Signed-off-by: Lianbo Jiang <lijiang@xxxxxxxxxx>
---
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 -- devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxxxxxx https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/ Contribution Guidelines: https://github.com/crash-utility/crash/wiki