29#include FT_CONFIG_CONFIG_H
39#ifdef FT_DEBUG_LEVEL_TRACE
40#undef FT_DEBUG_LEVEL_ERROR
41#define FT_DEBUG_LEVEL_ERROR
52#ifdef FT_DEBUG_LEVEL_TRACE
54#define FT_TRACE_DEF( x ) trace_ ## x ,
57 typedef enum FT_Trace_
59#include FT_INTERNAL_TRACE_H
67 extern int* ft_trace_levels;
85#ifdef FT_DEBUG_LEVEL_TRACE
88#define FT_TRACE_COMP( x ) FT_TRACE_COMP_( x )
89#define FT_TRACE_COMP_( x ) trace_ ## x
91#define FT_TRACE( level, varformat ) \
94 if ( ft_trace_levels[FT_TRACE_COMP( FT_COMPONENT )] >= level ) \
95 FT_Message varformat; \
100#define FT_TRACE( level, varformat ) do { } while ( 0 )
185#define FT_TRACE0( varformat ) FT_TRACE( 0, varformat )
186#define FT_TRACE1( varformat ) FT_TRACE( 1, varformat )
187#define FT_TRACE2( varformat ) FT_TRACE( 2, varformat )
188#define FT_TRACE3( varformat ) FT_TRACE( 3, varformat )
189#define FT_TRACE4( varformat ) FT_TRACE( 4, varformat )
190#define FT_TRACE5( varformat ) FT_TRACE( 5, varformat )
191#define FT_TRACE6( varformat ) FT_TRACE( 6, varformat )
192#define FT_TRACE7( varformat ) FT_TRACE( 7, varformat )
203#ifdef FT_DEBUG_LEVEL_ERROR
205#define FT_ERROR( varformat ) FT_Message varformat
209#define FT_ERROR( varformat ) do { } while ( 0 )
221#ifdef FT_DEBUG_LEVEL_ERROR
223#define FT_ASSERT( condition ) \
226 if ( !( condition ) ) \
227 FT_Panic( "assertion failed on line %d of file %s\n", \
228 __LINE__, __FILE__ ); \
231#define FT_THROW( e ) \
232 ( FT_Throw( FT_ERR_CAT( FT_ERR_PREFIX, e ), \
235 FT_ERR_CAT( FT_ERR_PREFIX, e ) )
239#define FT_ASSERT( condition ) do { } while ( 0 )
241#define FT_THROW( e ) FT_ERR_CAT( FT_ERR_PREFIX, e )
252#ifdef FT_DEBUG_LEVEL_ERROR
void FT_Panic(const char *format,...)
FT_Trace_Get_Name(FT_Int idx)
void FT_Message(const char *format,...)