📄 cyg_trac.h
字号:
if ( cyg_tracefunction_report_.cond ) \ cyg_tracemsg( cyg_trace_return, \ cyg_tracefunction_report_.func, \ cyg_tracefunction_report_.file, \ cyg_tracefunction_report_.lnum, \ "return void" ); \CYG_MACRO_END
#define CYG_REPORT_RETVAL( _value_ ) CYG_MACRO_START \ CYG_ASSERT( 0 == cyg_tracefunction_report_.exitset, \ "exitvalue used when arg already set" ); \ cyg_tracefunction_report_.lnum = __LINE__; \ cyg_tracefunction_report_.exitvalue = (CYG_ADDRWORD)(_value_); \ cyg_tracefunction_report_.exitset = 1; \ if ( cyg_tracefunction_report_.cond ) \ cyg_tracemsg2( cyg_trace_return, \ cyg_tracefunction_report_.func, \ cyg_tracefunction_report_.file, \ cyg_tracefunction_report_.lnum, \ cyg_tracefunction_report_.exitmsg ? \ cyg_tracefunction_report_.exitmsg : \ "return %08x", \ cyg_tracefunction_report_.exitvalue, 0 ); \CYG_MACRO_END
#else // do not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
#define CYG_REPORT_RETURN() CYG_MACRO_START \ cyg_tracefunction_report_.lnum = __LINE__; \ if ( cyg_tracefunction_report_.cond ) \ cyg_tracenomsg( cyg_tracefunction_report_.func, \ cyg_tracefunction_report_.file, \ cyg_tracefunction_report_.lnum ); \CYG_MACRO_END
#define CYG_REPORT_RETVAL( _value_ ) CYG_MACRO_START \ CYG_REPORT_RETURN(); \CYG_MACRO_END
#endif // not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
#endif // not __cplusplus
#ifdef CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
#define CYG_REPORT_FUNCARGVOID() CYG_MACRO_START \ if ( cyg_tracefunction_report_.cond ) \ cyg_tracemsg( cyg_trace_args, \ cyg_tracefunction_report_.func, \ cyg_tracefunction_report_.file, \ cyg_tracefunction_report_.lnum, \ "(void)" \ ); \CYG_MACRO_END
#define CYG_REPORT_FUNCARG1( _format_, a ) CYG_MACRO_START \ if ( cyg_tracefunction_report_.cond ) \ cyg_tracemsg2( cyg_trace_args, \ cyg_tracefunction_report_.func, \ cyg_tracefunction_report_.file, \ cyg_tracefunction_report_.lnum, \ (_format_), \ (CYG_ADDRWORD)a , 0 \ ); \CYG_MACRO_END
#define CYG_REPORT_FUNCARG2( _format_, a,b ) CYG_MACRO_START \ if ( cyg_tracefunction_report_.cond ) \ cyg_tracemsg2( cyg_trace_args, \ cyg_tracefunction_report_.func, \ cyg_tracefunction_report_.file, \ cyg_tracefunction_report_.lnum, \ (_format_), \ (CYG_ADDRWORD)a, (CYG_ADDRWORD)b \ ); \CYG_MACRO_END
#define CYG_REPORT_FUNCARG3( _format_, a,b,c ) CYG_MACRO_START \ if ( cyg_tracefunction_report_.cond ) \ cyg_tracemsg4( cyg_trace_args, \ cyg_tracefunction_report_.func, \ cyg_tracefunction_report_.file, \ cyg_tracefunction_report_.lnum, \ (_format_), \ (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \ (CYG_ADDRWORD)c , 0 \ ); \CYG_MACRO_END
#define CYG_REPORT_FUNCARG4( _format_, a,b,c,d ) CYG_MACRO_START \ if ( cyg_tracefunction_report_.cond ) \ cyg_tracemsg4( cyg_trace_args, \ cyg_tracefunction_report_.func, \ cyg_tracefunction_report_.file, \ cyg_tracefunction_report_.lnum, \ (_format_), \ (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \ (CYG_ADDRWORD)c, (CYG_ADDRWORD)d \ ); \CYG_MACRO_END
#define CYG_REPORT_FUNCARG5( _format_, a,b,c,d,e ) CYG_MACRO_START \ if ( cyg_tracefunction_report_.cond ) \ cyg_tracemsg6( cyg_trace_args, \ cyg_tracefunction_report_.func, \ cyg_tracefunction_report_.file, \ cyg_tracefunction_report_.lnum, \ (_format_), \ (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \ (CYG_ADDRWORD)c, (CYG_ADDRWORD)d, \ (CYG_ADDRWORD)e , 0 \ ); \CYG_MACRO_END
#define CYG_REPORT_FUNCARG6( _format_, a,b,c,d,e,f ) CYG_MACRO_START \ if ( cyg_tracefunction_report_.cond ) \ cyg_tracemsg6( cyg_trace_args, \ cyg_tracefunction_report_.func, \ cyg_tracefunction_report_.file, \ cyg_tracefunction_report_.lnum, \ (_format_), \ (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \ (CYG_ADDRWORD)c, (CYG_ADDRWORD)d, \ (CYG_ADDRWORD)e, (CYG_ADDRWORD)f \ ); \CYG_MACRO_END
#define CYG_REPORT_FUNCARG7( _format_, a,b,c,d,e,f,g ) CYG_MACRO_START \ if ( cyg_tracefunction_report_.cond ) \ cyg_tracemsg8( cyg_trace_args, \ cyg_tracefunction_report_.func, \ cyg_tracefunction_report_.file, \ cyg_tracefunction_report_.lnum, \ (_format_), \ (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \ (CYG_ADDRWORD)c, (CYG_ADDRWORD)d, \ (CYG_ADDRWORD)e, (CYG_ADDRWORD)f, \ (CYG_ADDRWORD)g , 0 \ ); \CYG_MACRO_END
#define CYG_REPORT_FUNCARG8( _format_, a,b,c,d,e,f,g,h ) CYG_MACRO_START\ if ( cyg_tracefunction_report_.cond ) \ cyg_tracemsg8( cyg_trace_args, \ cyg_tracefunction_report_.func, \ cyg_tracefunction_report_.file, \ cyg_tracefunction_report_.lnum, \ (_format_), \ (CYG_ADDRWORD)a, (CYG_ADDRWORD)b, \ (CYG_ADDRWORD)c, (CYG_ADDRWORD)d, \ (CYG_ADDRWORD)e, (CYG_ADDRWORD)f, \ (CYG_ADDRWORD)g, (CYG_ADDRWORD)h \ ); \CYG_MACRO_END
#else // do not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
#define CYG_REPORT_FUNCARGVOID() CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG1( _format_, a ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG2( _format_, a,b ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG3( _format_, a,b,c ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG4( _format_, a,b,c,d ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG5( _format_, a,b,c,d,e ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG6( _format_, a,b,c,d,e,f ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG7( _format_, a,b,c,d,e,f,g ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG8( _format_, a,b,c,d,e,f,g,h ) CYG_EMPTY_STATEMENT
#endif // not CYGDBG_INFRA_DEBUG_TRACE_MESSAGE
#else // no CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS
#define CYG_REPORT_FUNCTION() CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCTYPE( _exitmsg_ ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAME( _name_ ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAMETYPE( _name_, _exitmsg_ ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCTIONC() CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCTYPEC( _exitmsg_ ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAMEC( _name_ ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAMETYPEC( _name_, _exitmsg_ ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARGVOID() CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG1( _format_, a ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG2( _format_, a,b ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG3( _format_, a,b,c ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG4( _format_, a,b,c,d ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG5( _format_, a,b,c,d,e ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG6( _format_, a,b,c,d,e,f ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG7( _format_, a,b,c,d,e,f,g ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG8( _format_, a,b,c,d,e,f,g,h ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_RETURN() CYG_EMPTY_STATEMENT
#define CYG_REPORT_RETVAL( _value_ ) CYG_EMPTY_STATEMENT
#endif // CYGDBG_INFRA_DEBUG_FUNCTION_REPORTS
#else // ! CYGDBG_USE_TRACING
// -------------------------------------------------------------------------
// No traces: we define empty statements for trace macros.
#define CYG_TRACE0( _bool_, _msg_ ) CYG_EMPTY_STATEMENT
#define CYG_TRACE1( _bool_, _msg_, a ) CYG_EMPTY_STATEMENT
#define CYG_TRACE2( _bool_, _msg_, a,b ) CYG_EMPTY_STATEMENT
#define CYG_TRACE3( _bool_, _msg_, a,b,c ) CYG_EMPTY_STATEMENT
#define CYG_TRACE4( _bool_, _msg_, a,b,c,d ) CYG_EMPTY_STATEMENT
#define CYG_TRACE5( _bool_, _msg_, a,b,c,d,e ) CYG_EMPTY_STATEMENT
#define CYG_TRACE6( _bool_, _msg_, a,b,c,d,e,f ) CYG_EMPTY_STATEMENT
#define CYG_TRACE7( _bool_, _msg_, a,b,c,d,e,f,g ) CYG_EMPTY_STATEMENT
#define CYG_TRACE8( _bool_, _msg_, a,b,c,d,e,f,g,h ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCTION() CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCTYPE( _exitmsg_ ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAME( _name_ ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAMETYPE( _name_, _exitmsg_ ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCTIONC() CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCTYPEC( _exitmsg_ ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAMEC( _name_ ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCNAMETYPEC( _name_, _exitmsg_ ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARGVOID() CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG1( _format_, a ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG2( _format_, a,b ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG3( _format_, a,b,c ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG4( _format_, a,b,c,d ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG5( _format_, a,b,c,d,e ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG6( _format_, a,b,c,d,e,f ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG7( _format_, a,b,c,d,e,f,g ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_FUNCARG8( _format_, a,b,c,d,e,f,g,h ) CYG_EMPTY_STATEMENT
#define CYG_REPORT_RETURN() CYG_EMPTY_STATEMENT
#define CYG_REPORT_RETVAL( _value_ ) CYG_EMPTY_STATEMENT
#define CYG_TRACE_PRINT() CYG_EMPTY_STATEMENT
#define CYG_TRACE_DUMP() CYG_EMPTY_STATEMENT
#endif // ! CYGDBG_USE_TRACING
// -------------------------------------------------------------------------
//
// CYG_TRACEn{[XDY]{V}}{B}
//
// Convenience macros: these fall into a few dimensions, with suffix letters:
// First option:
// X: user need not supply a format string, %08x is used
// D: ditto but signed decimal, %d
// Y: ditto but just plain %x
// Second option, only meaningful with one of XDY:
// V: "<var> = %..." is used, by stringifying the argument
// Third option:
// B: user need not supply a bool; the symbol CYG_TRACE_USER_BOOL is
// used (which we do not define, user must do this)
#define CYG_TRACE0B( _msg_ ) \ CYG_TRACE0( CYG_TRACE_USER_BOOL, _msg_ )
#define CYG_TRACE1B( _msg_, a ) \ CYG_TRACE1( CYG_TRACE_USER_BOOL, _msg_, a )
#define CYG_TRACE2B( _msg_, a,b ) \ CYG_TRACE2( CYG_TRACE_USER_BOOL, _msg_, a,b )
#define CYG_TRACE3B( _msg_, a,b,c ) \ CYG_TRACE3( CYG_TRACE_USER_BOOL, _msg_, a,b,c )
#define CYG_TRACE4B( _msg_, a,b,c,d ) \ CYG_TRACE4( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d )
#define CYG_TRACE5B( _msg_, a,b,c,d,e ) \ CYG_TRACE5( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e )
#define CYG_TRACE6B( _msg_, a,b,c,d,e,f ) \ CYG_TRACE6( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e,f )
#define CYG_TRACE7B( _msg_, a,b,c,d,e,f,g ) \ CYG_TRACE7( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e,f,g )
#define CYG_TRACE8B( _msg_, a,b,c,d,e,f,g,h ) \ CYG_TRACE8( CYG_TRACE_USER_BOOL, _msg_, a,b,c,d,e,f,g,h )
// long hex versions
#define CYG_TRACE1X( _bool_, a ) \ CYG_TRACE1( _bool_, "%08x", a )
#define CYG_TRACE2X( _bool_, a,b ) \ CYG_TRACE2( _bool_, "%08x %08x", a,b )
#define CYG_TRACE3X( _bool_, a,b,c ) \ CYG_TRACE3( _bool_, "%08x %08x %08x", a,b,c )
#define CYG_TRACE4X( _bool_, a,b,c,d ) \ CYG_TRACE4( _bool_, "%08x %08x %08x %08x", a,b,c,d )
#define CYG_TRACE5X( _bool_, a,b,c,d,e ) \ CYG_TRACE5( _bool_, "%08x %08x %08x %08x %08x", a,b,c,d,e )
#define CYG_TRACE6X( _bool_, a,b,c,d,e,f ) \ CYG_TRACE6( _bool_, "%08x %08x %08x %08x %08x %08x", \ a,b,c,d,e,f )
#define CYG_TRACE7X( _bool_, a,b,c,d,e,f,g ) \ CYG_TRACE7( _bool_, "%08x %08x %08x %08x %08x %08x %08x", \ a,b,c,d,e,f,g )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -