diff options
Diffstat (limited to 'debug.h')
-rw-r--r-- | debug.h | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -0,0 +1,20 @@ +#include <features.h> + +void debug_(int level, char *file, int line, char *func, char *fmt, ...); + +# define debug(level, expr...) debug_(level, __FILE__, __LINE__, DEBUG_FUNCTION, expr) + +/* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__' + which contains the name of the function currently being defined. + This is broken in G++ before version 2.6. + C9x has a similar variable called __func__, but prefer the GCC one since + it demangles C++ function names. */ +# if __GNUC_PREREQ (2, 4) +# define DEBUG_FUNCTION __PRETTY_FUNCTION__ +# else +# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +# define DEBUG_FUNCTION __func__ +# else +# define DEBUG_FUNCTION ((__const char *) 0) +# endif +# endif |