From 34ece34e013c43f358c561899abb71e3bedd8d4b Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 11 Jun 2020 17:11:24 +0300 Subject: [PATCH] More detailed panic messages --- sys/panic.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sys/panic.c b/sys/panic.c index f88f2ab..0c9eb16 100644 --- a/sys/panic.c +++ b/sys/panic.c @@ -7,6 +7,9 @@ #include "sys/debug.h" void panicf(const char *fmt, ...) { + uintptr_t rbp; + asm volatile ("movq %%rbp, %0":"=r"(rbp)); + asm volatile ("cli"); va_list args; kfatal("--- Panic ---\n"); @@ -14,9 +17,12 @@ void panicf(const char *fmt, ...) { va_start(args, fmt); debugs(DEBUG_FATAL, "\033[41m"); debugfv(DEBUG_FATAL, fmt, args); - debugs(DEBUG_FATAL, "\033[0m"); + debugs(DEBUG_FATAL, "\n\033[0m"); va_end(args); + kfatal("Call trace:\n"); + debug_backtrace(rbp, 0, 10); + kfatal("--- Panic ---\n"); #if defined(AMD64_SMP)