arm64: Improve unhandled exception traces
Put the stack trace at the bottom, rather than mixing it with
register dumps, and also start the trace from the current PC.
Signed-off-by: Andrew Jones <andrew.jones@linux.dev>
diff --git a/lib/arm64/processor.c b/lib/arm64/processor.c
index 5bcad67..06fd7cf 100644
--- a/lib/arm64/processor.c
+++ b/lib/arm64/processor.c
@@ -130,9 +130,9 @@
printf("Vector: %d (%s)\n", v, vector_names[v]);
printf("ESR_EL1: %8s%08x, ec=%#x (%s)\n", "", esr, ec, ec_names[ec]);
printf("FAR_EL1: %016lx (%svalid)\n", far, far_valid ? "" : "not ");
- dump_stack();
printf("Exception frame registers:\n");
show_regs(regs);
+ dump_frame_stack((void *)regs->pc, (void *)regs->regs[29]);
abort();
}