void _SHOWPOINTER( void *pointer, const char *name, const char *file, int line) { if(__debug_level >= DEBUGLEVEL_Reports) { char *fmt; _INDENT(); if(pointer != NULL) fmt = "%s:%ld:%s = 0x%08lx\n"; else fmt = "%s:%ld:%s = NULL\n"; if(debug_file == (BPTR)NULL) { kprintf(fmt,file,line,name,pointer); } else { FPrintf(debug_file,fmt,file,line,name,pointer); Flush(debug_file); } } }
void _SHOWSTRING( const char *string, const char *name, const char *file, int line) { if(__debug_level >= DEBUGLEVEL_Reports) { _INDENT(); if(debug_file == (BPTR)NULL) { if(string != NULL) kprintf("%s:%ld:%s = 0x%08lx \"%s\"\n",file,line,name,string,string); else kprintf("%s:%ld:%s = NULL \"\"\n",file,line,name); } else { if(string != NULL) FPrintf(debug_file,"%s:%ld:%s = 0x%08lx \"%s\"\n",file,line,name,string,string); else FPrintf(debug_file,"%s:%ld:%s = NULL \"\"\n",file,line,name); Flush(debug_file); } } }
void _DPRINTF(unsigned long dclass, unsigned long dflags, const char *file, int line, const char *format, ...) { if((isFlagSet(debug_classes, dclass) && isFlagSet(debug_flags, dflags)) || (isFlagSet(dclass, DBC_ERROR) || isFlagSet(dclass, DBC_WARNING))) { va_list args; static char buf[1024]; _INDENT(); va_start(args, format); vsnprintf(buf, 1024, format, args); va_end(args); if(ansi_output) { const char *highlight = ANSI_ESC_FG_GREEN; switch(dclass) { case DBC_CTRACE: highlight = ANSI_ESC_FG_BROWN; break; case DBC_REPORT: highlight = ANSI_ESC_FG_GREEN; break; case DBC_ASSERT: highlight = ANSI_ESC_FG_RED; break; case DBC_TIMEVAL: highlight = ANSI_ESC_FG_GREEN; break; case DBC_DEBUG: highlight = ANSI_ESC_FG_GREEN; break; case DBC_ERROR: highlight = ANSI_ESC_FG_RED; break; case DBC_WARNING: highlight = ANSI_ESC_FG_PURPLE;break; } kprintf("%s%s:%ld:%s%s\n", highlight, file, line, buf, ANSI_ESC_CLR); } else kprintf("%s:%ld:%s\n", file, line, buf); } }
void _SHOWSTRING(unsigned long dclass, unsigned long dflags, const char *string, const char *name, const char *file, int line) { if(isFlagSet(debug_classes, dclass) && isFlagSet(debug_flags, dflags)) { _INDENT(); if(ansi_output) kprintf("%s%s:%ld:%s = 0x%08lx \"%s\"%s\n", ANSI_ESC_FG_GREEN, file, line, name, string, string, ANSI_ESC_CLR); else kprintf("%s:%ld:%s = 0x%08lx \"%s\"\n", file, line, name, string, string); } }
void _SHOWMSG(unsigned long dclass, unsigned long dflags, const char *msg, const char *file, int line) { if(isFlagSet(debug_classes, dclass) && isFlagSet(debug_flags, dflags)) { _INDENT(); if(ansi_output) kprintf("%s%s:%ld:%s%s\n", ANSI_ESC_FG_GREEN, file, line, msg, ANSI_ESC_CLR); else kprintf("%s:%ld:%s\n", file, line, msg); } }
void _RETURN(unsigned long dclass, const char *file, int line, const char *function, unsigned long result) { indent_level--; if(isFlagSet(debug_classes, dclass)) { _INDENT(); if(ansi_output) kprintf("%s%s:%ld:Leaving %s (result 0x%08lx, %ld)%s\n", ANSI_ESC_FG_BROWN, file, line, function, result, result, ANSI_ESC_CLR); else kprintf("%s:%ld:Leaving %s (result 0x%08lx, %ld)\n", file, line, function, result, result); } }
void _LEAVE(unsigned long dclass, const char *file, int line, const char *function) { indent_level--; if(isFlagSet(debug_classes, dclass)) { _INDENT(); if(ansi_output) kprintf("%s%s:%ld:Leaving %s%s\n", ANSI_ESC_FG_BROWN, file, line, function, ANSI_ESC_CLR); else kprintf("%s:%ld:Leaving %s\n", file, line, function); } }
void _ENTER(unsigned long dclass, const char *file, int line, const char *function) { if(isFlagSet(debug_classes, dclass)) { _INDENT(); if(ansi_output) _DBPRINTF("%s%s:%ld:Entering %s%s\n", ANSI_ESC_FG_BROWN, file, line, function, ANSI_ESC_CLR); else _DBPRINTF("%s:%ld:Entering %s\n", file, line, function); } indent_level++; }
void _DPRINTF_HEADER( const char *file, int line) { if(__debug_level >= DEBUGLEVEL_Reports) { _INDENT(); if(debug_file == (BPTR)NULL) kprintf("%s:%ld:",file,line); else FPrintf(debug_file,"%s:%ld:",file,line); } }
void _SHOWVALUE(unsigned long dclass, unsigned long dflags, unsigned long value, int size, const char *name, const char *file, int line) { if(isFlagSet(debug_classes, dclass) && isFlagSet(debug_flags, dflags)) { const char *fmt; switch(size) { case 1: fmt = "%s:%ld:%s = %ld, 0x%02lx"; break; case 2: fmt = "%s:%ld:%s = %ld, 0x%04lx"; break; default: fmt = "%s:%ld:%s = %ld, 0x%08lx"; break; } _INDENT(); if(ansi_output) kprintf(ANSI_ESC_FG_GREEN); kprintf(fmt, file, line, name, value, value); if(size == 1 && value < 256) { if(value < ' ' || (value >= 127 && value < 160)) kprintf(", '\\x%02lx'", value); else kprintf(", '%lc'", value); } if(ansi_output) kprintf("%s\n", ANSI_ESC_CLR); else kprintf("\n"); } }
void _SHOWMSG( const char *string, const char *file, int line) { if(__debug_level >= DEBUGLEVEL_Reports) { _INDENT(); if(debug_file == (BPTR)NULL) { kprintf("%s:%ld:%s\n",file,line,string); } else { FPrintf(debug_file,"%s:%ld:%s\n",file,line,string); Flush(debug_file); } } }
void _SHOWPOINTER(unsigned long dclass, unsigned long dflags, const void *p, const char *name, const char *file, int line) { if(isFlagSet(debug_classes, dclass) && isFlagSet(debug_flags, dflags)) { const char *fmt; _INDENT(); if(p != NULL) fmt = "%s:%ld:%s = 0x%08lx\n"; else fmt = "%s:%ld:%s = NULL\n"; if(ansi_output) { kprintf(ANSI_ESC_FG_GREEN); kprintf(fmt, file, line, name, p); kprintf(ANSI_ESC_CLR); } else kprintf(fmt, file, line, name, p); } }
void _SHOWVALUE( unsigned long value, int size, const char *name, const char *file, int line) { if(__debug_level >= DEBUGLEVEL_Reports) { char *fmt; switch(size) { case 1: fmt = "%s:%ld:%s = %ld, 0x%02lx"; break; case 2: fmt = "%s:%ld:%s = %ld, 0x%04lx"; break; default: fmt = "%s:%ld:%s = %ld, 0x%08lx"; break; } _INDENT(); if(debug_file == (BPTR)NULL) kprintf(fmt,file,line,name,value,value); else FPrintf(debug_file,fmt,file,line,name,value,value); if(size == 1 && value < 256) { if(debug_file == (BPTR)NULL) { if(value < ' ' || (value >= 127 && value < 160)) kprintf(", '\\x%02lx'",value); else kprintf(", '%lc'",value); } else { if(value < ' ' || (value >= 127 && value < 160)) FPrintf(debug_file,", '\\x%02lx'",value); else FPrintf(debug_file,", '%lc'",value); } } if(debug_file == (BPTR)NULL) { kprintf("\n"); } else { FPrintf(debug_file,"\n"); Flush(debug_file); } } }