From 945a060042f4e584d7fc81ed0722d4bdc756bada Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Mon, 14 Jan 2008 13:04:13 +0000 Subject: [PATCH] Added "message" debugger command to reprint the message printed when entering KDL. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23516 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/debug/debug.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/system/kernel/debug/debug.cpp b/src/system/kernel/debug/debug.cpp index 42dab767cd..f5a524b2b5 100644 --- a/src/system/kernel/debug/debug.cpp +++ b/src/system/kernel/debug/debug.cpp @@ -67,6 +67,8 @@ static struct debugger_command *sCommands; static jmp_buf sInvokeCommandEnv; static bool sInvokeCommandDirectly = false; +static const char* sCurrentKernelDebuggerMessage; + #define SYSLOG_BUFFER_SIZE 65536 #define OUTPUT_BUFFER_SIZE 1024 static char sOutputBuffer[OUTPUT_BUFFER_SIZE]; @@ -563,6 +565,18 @@ cmd_continue(int argc, char **argv) } +static int +cmd_dump_kdl_message(int argc, char **argv) +{ + if (sCurrentKernelDebuggerMessage) { + kputs(sCurrentKernelDebuggerMessage); + kputchar('\n'); + } + + return 0; +} + + static status_t syslog_sender(void *data) { @@ -806,6 +820,8 @@ debug_init_post_vm(kernel_args *args) add_debugger_command("exit", &cmd_continue, "Same as \"continue\""); add_debugger_command("es", &cmd_continue, "Same as \"continue\""); add_debugger_command("continue", &cmd_continue, "Leave kernel debugger"); + add_debugger_command("message", &cmd_dump_kdl_message, + "Reprint the message printed when entering KDL"); frame_buffer_console_init(args); arch_debug_console_init_settings(args); @@ -994,6 +1010,8 @@ kernel_debugger(const char *message) if (message) kprintf("PANIC: %s\n", message); + sCurrentKernelDebuggerMessage = message; + kernel_debugger_loop(); set_dprintf_enabled(dprintfState);