From 463910df98693172461dc1c5336228296434accc Mon Sep 17 00:00:00 2001 From: James Mintram Date: Mon, 4 Apr 2022 22:23:49 +0100 Subject: [PATCH] Kernel: Print out assertion info in __assertion_failed on aarch64 --- Kernel/Arch/aarch64/init.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Kernel/Arch/aarch64/init.cpp b/Kernel/Arch/aarch64/init.cpp index a5fc1e16f8..3f5cb110ef 100644 --- a/Kernel/Arch/aarch64/init.cpp +++ b/Kernel/Arch/aarch64/init.cpp @@ -93,8 +93,21 @@ void __stack_chk_fail() Prekernel::halt(); } -[[noreturn]] void __assertion_failed(char const*, char const*, unsigned int, char const*) +[[noreturn]] void __assertion_failed(char const* msg, char const* file, unsigned line, char const* func) { + auto& uart = Prekernel::UART::the(); + + uart.print_str("\r\n\r\nASSERTION FAILED: "); + uart.print_str(msg); + + uart.print_str("\r\n"); + uart.print_str(file); + uart.print_str(":"); + uart.print_num(line); + + uart.print_str(" in "); + uart.print_str(func); + Prekernel::halt(); }