From a01b96ccf4ec884e5b894d08a819a37ea3f5f749 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Tue, 22 Jan 2013 17:25:30 +0800 Subject: [PATCH] Kernel/debug - Panic to VT for the first nested panic --- KernelLand/Kernel/debug.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/KernelLand/Kernel/debug.c b/KernelLand/Kernel/debug.c index 6132bd90..cb11f5f5 100644 --- a/KernelLand/Kernel/debug.c +++ b/KernelLand/Kernel/debug.c @@ -39,7 +39,10 @@ static void Debug_Putchar(char ch) { Debug_PutCharDebug(ch); - if( !gbDebug_IsKPanic ) + if( gbDebug_IsKPanic ) + KernelPanic_PutChar(ch); + + if( gbDebug_IsKPanic < 2 ) { if(gbInPutChar) return ; gbInPutChar = 1; @@ -47,8 +50,6 @@ static void Debug_Putchar(char ch) VFS_Write(giDebug_KTerm, 1, &ch); gbInPutChar = 0; } - else - KernelPanic_PutChar(ch); if( gbSendNetworkDebug ) { @@ -75,7 +76,7 @@ static void Debug_Puts(int UseKTerm, const char *Str) IPStack_SendDebugText(Str); // Output to the kernel terminal - if( UseKTerm && !gbDebug_IsKPanic && giDebug_KTerm != -1) + if( UseKTerm && gbDebug_IsKPanic < 2 && giDebug_KTerm != -1) { if(gbInPutChar) return ; gbInPutChar = 1; @@ -114,7 +115,7 @@ void Debug_KernelPanic(void) #if LOCK_DEBUG_OUTPUT SHORTREL(&glDebug_Lock); #endif - gbDebug_IsKPanic = 1; + gbDebug_IsKPanic ++; KernelPanic_SetMode(); } -- 2.20.1