⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cyg_trac.h

📁 eCos/RedBoot for勤研ARM AnywhereII(4510) 含全部源代码
💻 H
📖 第 1 页 / 共 5 页
字号:
    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 + -