标签:debug
/*
*Author : DavidLin
*Date : 2014-12-26pm
*Email : linpeng1577@163.com or linpeng1577@gmail.com
*world : the city of SZ, in China
*Ver : 000.000.001
*For : threads for rxtx!
*history : editor time do
* 1)LinPeng 2014-12-26 created this file!
* 2)
*/
/* assert_self.h */
#ifndef __ASSERT_SELF_H__
#define __ASSERT_SELF_H__
#include<stdio.h>
#define ASSERT_ENABLE (1)
#define xprintf printf /* xprintf can be tty print or uart print, etc */
#if ASSERT_ENABLE
#define assert_error() do { xprintf("[ERROR] Assert FILE: %s: LINE %d\n", __FILE__, __LINE__); \
}while(0)
#define ASSERT1(para) do { if(!para) { assert_error(); } }while(0)
#else /* if ! ASSERT_ENABLE */
#define ASSERT1(para) do { if(para) { } }while(0)
#endif /* end of ASSERT_ENABLE */
#endif /* end of __ASSERT_SELF_H__*/测试用例
/* test case : test.c */
#include<stdio.h>
#include"assert_self.h"
int main(int argc, char* argv[])
{
switch(argc)
{
case 2:
ASSERT1(atoi(argv[1]));
break;
default:
printf("ARG ACCEPT 1\n");
break;
}
exit(0);
}软件Bug定位,很多时候,比如利用Assert宏,可以把48小时的调试大餐压缩成1口可以吃掉的饭后甜点,每个软件小组都在重新演化,过去的经验总是得不到很好的传承,这就是我们!
标签:debug
原文地址:http://linpeng.blog.51cto.com/9779987/1596707