X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fdebug.c;h=31d3b3992bf0d90cf5f51e58fa25ef4783135d32;hb=e7809e57b0692cf65ee1a7d2060c52fc53da49f2;hp=355624d5c483769fafc237442a7ad64aaff4767f;hpb=06de0dedbeeaec2be19b73a4500523efa3ab1852;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/debug.c b/KernelLand/Kernel/debug.c index 355624d5..31d3b399 100644 --- a/KernelLand/Kernel/debug.c +++ b/KernelLand/Kernel/debug.c @@ -1,22 +1,19 @@ /* * AcessOS Microkernel Version * debug.c - * - * TODO: Move the Debug_putchar methods out to the arch/ tree */ #include #include #define DEBUG_MAX_LINE_LEN 256 - -#define LOCK_DEBUG_OUTPUT 1 - -#define TRACE_TO_KTERM 0 +#define LOCK_DEBUG_OUTPUT 1 // Avoid interleaving of output lines? +#define TRACE_TO_KTERM 0 // Send ENTER/DEBUG/LEAVE to debug? // === IMPORTS === extern void Threads_Dump(void); extern void KernelPanic_SetMode(void); extern void KernelPanic_PutChar(char Ch); +extern void IPStack_SendDebugText(const char *Text); // === PROTOTYPES === static void Debug_Putchar(char ch); @@ -34,11 +31,14 @@ volatile int gbInPutChar = 0; #if LOCK_DEBUG_OUTPUT tShortSpinlock glDebug_Lock; #endif +// - Disabled because it breaks shit + int gbSendNetworkDebug = 0; // === CODE === static void Debug_Putchar(char ch) { Debug_PutCharDebug(ch); + if( !gbDebug_IsKPanic ) { if(gbInPutChar) return ; @@ -49,6 +49,12 @@ static void Debug_Putchar(char ch) } else KernelPanic_PutChar(ch); + + if( gbSendNetworkDebug ) + { + char str[2] = {ch, 0}; + IPStack_SendDebugText(str); + } } static void Debug_Puts(int UseKTerm, const char *Str) @@ -64,7 +70,10 @@ static void Debug_Puts(int UseKTerm, const char *Str) } else for( len = 0; Str[len]; len ++ ); - + + if( gbSendNetworkDebug ) + IPStack_SendDebugText(Str); + // Output to the kernel terminal if( UseKTerm && !gbDebug_IsKPanic && giDebug_KTerm != -1) { @@ -83,9 +92,9 @@ void Debug_DbgOnlyFmt(const char *format, va_list args) void Debug_Fmt(int bUseKTerm, const char *format, va_list args) { char buf[DEBUG_MAX_LINE_LEN]; - int len; +// int len; buf[DEBUG_MAX_LINE_LEN-1] = 0; - len = vsnprintf(buf, DEBUG_MAX_LINE_LEN-1, format, args); + /*len = */vsnprintf(buf, DEBUG_MAX_LINE_LEN-1, format, args); //if( len < DEBUG_MAX_LINE ) // do something Debug_Puts(bUseKTerm, buf); @@ -212,6 +221,7 @@ void Panic(const char *Fmt, ...) Debug_Putchar('\n'); Threads_Dump(); + Heap_Dump(); for(;;) ; }