#ifndef HAVE_ESPIK_DEBUG_H
#define HAVE_ESPIK_DEBUG_H
#include "espik_global.h"
#define DEBUG_PRINT_FILENO stdout
#define DEBUG_ENTLEV_FILENO stderr
#if defined (_ESPIK_DEBUG_) && defined (__GNUC__)
#define espik_debug_print(fmt, ...) \
{ \
fprintf (DEBUG_PRINT_FILENO, "%s +%i @%s: '", __FILE__, __LINE__, __func__); \
fprintf (DEBUG_PRINT_FILENO, fmt, ##__VA_ARGS__); \
fprintf (DEBUG_PRINT_FILENO, "'\n"); \
}
#else
#define espik_debug_print(fmt, ...) \
{ \
}
#endif /* _ESPIK_DEBUG_ && __GNUC__ */
#ifdef _ESPIK_DEBUG_
#ifndef _ESPIK_DEBIG_INDENT_LEVEL
#define _ESPIK_DEBIG_INDENT_LEVEL
int __indent_level;
#endif /* _ESPIK_DEBIG_INDENT_LEVEL */
#define espik_enter() \
{ \
__indent_level++; \
fprintf (DEBUG_ENTLEV_FILENO, ">(%d)%*c%s +%i @%s\n", __indent_level, __indent_level, ' ', __FILE__, __LINE__, __func__); \
}
#define espik_leave() \
{ \
fprintf (DEBUG_ENTLEV_FILENO, "<(%d)%*c%s +%i @%s\n", __indent_level, __indent_level, ' ', __FILE__, __LINE__, __func__); \
__indent_level--; \
}
#else
#define espik_enter() \
{ \
}
#define espik_leave() \
{ \
}
#endif /* _ESPIK_DEBUG_ */
inline void espik_bt (void);
void espik_debug_init();
void kill_me (short num);
#endif /* HAVE_ESPIK_DEBUG_H */