1 /*************************************************************************** 2 debug - description 3 ------------------- 4 begin : Sun Aug 8 2004 5 copyright : (C) 2004, 2006, 2017 by Thomas Friedrichsmeier 6 email : thomas.friedrichsmeier@kdemail.net 7 ***************************************************************************/ 8 9 /*************************************************************************** 10 * * 11 * This program is free software; you can redistribute it and/or modify * 12 * it under the terms of the GNU General Public License as published by * 13 * the Free Software Foundation; either version 2 of the License, or * 14 * (at your option) any later version. * 15 * * 16 ***************************************************************************/ 17 18 #define RKWARD_DEBUG 19 20 void RKDebug (int flags, int level, const char *fmt, ...); 21 22 // Debug-levels 23 #define DL_TRACE 0 24 #define DL_DEBUG 1 25 #define DL_INFO 2 26 #define DL_WARNING 3 27 #define DL_ERROR 4 28 #define DL_FATAL 5 29 30 // Debug components 31 #define APP 1 32 #define PLUGIN 1 << 1 33 #define OBJECTS 1 << 2 34 #define EDITOR 1 << 3 35 #define SETTINGS 1 << 4 36 #define PHP 1 << 5 37 #define RBACKEND 1 << 6 38 #define COMMANDEDITOR 1 << 7 39 #define MISC 1 << 8 40 #define DIALOGS 1 << 9 41 #define OUTPUT 1 << 10 42 #define XML 1 << 11 43 #define GRAPHICS_DEVICE 1 << 12 44 #define DEBUG_ALL (APP | PLUGIN | PHP | OBJECTS | EDITOR | RBACKEND | COMMANDEDITOR | MISC | DIALOGS | OUTPUT | XML | GRAPHICS_DEVICE) 45 46 #ifdef RKWARD_DEBUG 47 // Debug functions 48 # define RK_DO(expr,flags,level) if ((flags & RK_Debug::RK_Debug_Flags) && (level >= RK_Debug::RK_Debug_Level)) { expr; } 49 # define RK_DEBUG(flags,level,...) { if ((flags & RK_Debug::RK_Debug_Flags) && (level >= RK_Debug::RK_Debug_Level)) RKDebug (flags,level,__VA_ARGS__); } 50 # define RK_ASSERT(x) if (!(x)) RK_DEBUG (DEBUG_ALL, DL_FATAL, "Assert '%s' failed at %s - function %s line %d", #x, __FILE__, __FUNCTION__, __LINE__); 51 # ifndef RKWARD_NO_TRACE 52 # define RK_TRACE(flags) RK_DEBUG (flags, DL_TRACE, "Trace: %s - function %s line %d", __FILE__, __FUNCTION__, __LINE__); 53 # else 54 # define RK_TRACE(flags) 55 # endif 56 #else 57 # define RK_DO(expr,flags,level) 58 # define RK_DEBUG(flags,level,fmt,...) 59 # define RK_ASSERT(x) 60 # define RK_TRACE(flags) 61 #endif 62 63 class QFile; 64 namespace RK_Debug { 65 extern int RK_Debug_Level; 66 extern int RK_Debug_Flags; 67 extern int RK_Debug_CommandStep; 68 bool setupLogFile (const QString &basename); 69 extern QFile* debug_file; 70 }; 71