debug 输出log控制

/*简单打印调试信息*/
#define     DEBUG_SWITCH        1
#ifdef      DEBUG_SWITCH
#define my_debug(fmt,args...) printf(fmt, ##args)
#else
#define my_debug(fmt,args...) /*do nothing */
#endif

/*错误信息打印:自动打印发生错误时代码所在的位置*/
#define   ERR_DEBUG_SWITCH        1
#ifdef    ERR_DEBUG_SWITCH
#define pr_err(fmt,args...) printf("\nFile:<%s> Fun:[%s] Line:%d\n "fmt, __FILE__, __FUNCTION__, __LINE__, ##args)
#else
#define pr_err(fmt,args...) /*do nothing */
#endif

/*断言: 对某种假设条件进行检查0/1(若条件成立则无动作,否则报告错误信息)*/
#define _EXAM_ASSERT_TEST_        1
#define _EXAM_ASSERT_EXIT_        1
#ifdef  _EXAM_ASSERT_TEST_     
void exam_assert(int condition, const char * file_name, const char *fun, unsigned int line_no, const char *fmt, ...)
{
    char sBuf[1024];
    va_list va;

    if (!condition)
    {
        bzero(sBuf, sizeof(sBuf));
        va_start(va, fmt);
        vsprintf(sBuf, fmt, va);

        printf("\n[EXAM]Assert failed: File:<%s> Fun:[%s] Line:%d\n %s", file_name, fun, line_no, sBuf);
#ifdef _EXAM_ASSERT_EXIT_
        abort();
#endif
    }
}
#define EXAM_ASSERT(condition, fmt, args...)    exam_assert(condition, __FILE__, __FUNCTION__, __LINE__,fmt, ##args)
#else // 若不使用断言测试
#define EXAM_ASSERT(condition, fmt, args...) NULL
#endif /* end of ASSERT */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值