aboutsummaryrefslogblamecommitdiff
path: root/src/espik_debug.h
blob: 75c65a1fc56b7e1ae4bd9da8a08a97e5cfede5ea (plain) (tree)
1
2
3
4
5
6
7
8
9

                          
 

                         

                                      
 
                                                 

                                     


                                                                                      
 
     

                                     
 
                                       
 






























                                                                                                                                   
                            
                        
                         
 
                                
#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 */