📄 ttdebug.h
字号:
/******************************************************************* * * ttdebug.h * * Debugging and Logging component (specification) * * Copyright 1996-1999 by * David Turner, Robert Wilhelm, and Werner Lemberg. * * This file is part of the FreeType project, and may only be used * modified and distributed under the terms of the FreeType project * license, LICENSE.TXT. By continuing to use, modify, or distribute * this file you indicate that you have read the license and * understand and accept it fully. * * * This component contains various macros and functions used to * ease the debugging of the FreeType engine. Its main purpose * is in assertion checking, tracing, and error detection. * * There are now three debugging modes: * * - trace mode: * * Error and trace messages are sent to the log file * (which can be the standard error output). Define * DEBUG_LEVEL_TRACE to enable this mode. * * - error mode: * * Only error messages are generated. Define * DEBUG_LEVEL_ERROR to enable this mode. * * - release mode: * * Error messages are neither sent nor generated. The code is * free from any debugging parts. * ******************************************************************/#ifndef TTDEBUG_H#define TTDEBUG_H#include "ttconfig.h"#include "tttypes.h"#ifdef __cplusplus extern "C" {#endif#if defined( DEBUG_LEVEL_TRACE ) typedef enum Trace_Component_ { trace_any = 0, trace_api, trace_interp, trace_load, trace_gload, trace_memory, trace_file, trace_mutex, trace_cache, trace_calc, trace_cmap, trace_extend, trace_objs, trace_raster, trace_bitmap, trace_max } Trace_Component; /* Here we define an array to hold the trace levels per component. */ /* Since it is globally defined, all array members are set to 0. */ /* You should set the values in this array either in your program */ /* or with your debugger. */ /* */ /* Currently, up to eight levels (PTRACE0-PTRACE7, see below) are */ /* used in some parts of the engine. */ /* */ /* For example, to have all tracing messages in the raster */ /* component, say */ /* */ /* #define DEBUG_LEVEL_TRACE */ /* #include "ttdebug.h" */ /* */ /* ... */ /* set_tt_trace_levels( trace_raster, 7 ) */ /* */ /* in your code before initializing the FreeType engine. */ /* */ /* Maybe it is better to define DEBUG_LEVEL_TRACE in ttconfig.h... */ extern char tt_trace_levels[trace_max]; /* IMPORTANT: */ /* */ /* Each component must define the macro TT_COMPONENT */ /* to a valid Trace_Component value before using any */ /* PTRACEx macro. */ /* */#define PTRACE( level, varformat ) \ if ( tt_trace_levels[TT_COMPONENT] >= level ) TT_Message##varformat#elif defined( DEBUG_LEVEL_ERROR )#define PTRACE( level, varformat ) /* nothing */#else /* RELEASE MODE */#define TT_Assert( condition, action ) /* nothing */#define PTRACE( level, varformat ) /* nothing */#define PERROR( varformat ) /* nothing */#define PANIC( varformat ) /* nothing */#endif/************************************************************************//* *//* Define macros and fuctions that are common to the debug and trace *//* modes. *//* */#if defined( DEBUG_LEVEL_TRACE ) || defined( DEBUG_LEVEL_ERROR )#define TT_Assert( condition, action ) if ( !(condition) ) ( action ) void TT_Message( const String* fmt, ... ); void TT_Panic ( const String* fmt, ... ); /* print a message and exit */ const String* Cur_U_Line( void* exec );#define PERROR( varformat ) TT_Message##varformat#define PANIC( varformat ) TT_Panic##varformat#endif#if defined( DEBUG_LEVEL_TRACE ) void set_tt_trace_levels( int index, char value );#endif#define PTRACE0( varformat ) PTRACE( 0, varformat )#define PTRACE1( varformat ) PTRACE( 1, varformat )#define PTRACE2( varformat ) PTRACE( 2, varformat )#define PTRACE3( varformat ) PTRACE( 3, varformat )#define PTRACE4( varformat ) PTRACE( 4, varformat )#define PTRACE5( varformat ) PTRACE( 5, varformat )#define PTRACE6( varformat ) PTRACE( 6, varformat )#define PTRACE7( varformat ) PTRACE( 7, varformat )#ifdef __cplusplus }#endif#endif /* TTDEBUG_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -