用于调试的宏
来源:互联网 发布:linux 免驱动无线网卡 编辑:程序博客网 时间:2024/05/01 02:02
在linux编程中,gdb是个不错的调试工具。但是当文件数量上百,甚至上千之后,使用gdb调试就是一场灾难。因此在程序中加入合理的打印信息,能更高效的定位到问题的所在。下面就是定义的宏。分别是WARNING,INFO,ERROR。利用了, __FILE__,_FUNCTION__,__LINE__变量。
- #define ERROR(...) /
- do{ /
- fprintf(stderr, "[ERROR ]%s %s(Line %d): ",__FILE__,__FUNCTION__,__LINE__); /
- fprintf(stderr, __VA_ARGS__); /
- }while(0)
- #define WARNING(...) /
- do{ /
- fprintf(stdout, "[WARNING]%s %s(Line %d): ",__FILE__,__FUNCTION__,__LINE__); /
- fprintf(stdout, __VA_ARGS__); /
- }while(0)
- #define INFO(...) /
- do{ /
- fprintf(stdout, "[INFO ]%s %s(Line %d): ",__FILE__,__FUNCTION__,__LINE__); /
- fprintf(stdout, __VA_ARGS__); /
- }while(0)
- #define SHOW_TIME(...) /
- do{/
- extern unsigned long long gLatestTime;/
- timeval tp;/
- gettimeofday(&tp, NULL);/
- unsigned long long now = tp.tv_sec*1000000+tp.tv_usec; /
- if(gLatestTime != 0) /
- { /
- fprintf(stdout, ">>>>>>>>>Used Time: %s[%d], %s: %ld.%ld, %llu ms ", __FILE__, __LINE__, __func__, tp.tv_sec, tp.tv_usec, (now-gLatestTime)/1000);/
- fprintf(stdout, __VA_ARGS__); /
- fprintf(stdout, "/n"); /
- } /
- gLatestTime = now;/
- }while(0)
- #ifdef DEBUG
- #define DBG(...) /
- do{ /
- fprintf(stdout, "[DEBUG ]%s %s(Line %d): ",__FILE__,__FUNCTION__,__LINE__); /
- fprintf(stdout, __VA_ARGS__); /
- }while(0)
- #else
- #define DBG(...)
- #endif
这样在合理的地方加入打印信息。通过打印信息尽快的找到处问题的文件,函数和行数。高效,快捷!
- 用于调试的宏
- 用于调试的TRACE宏
- 一个用于调试的宏
- 可变参数宏(用于调试)
- 如何调试用于PPC设备的dll
- 用于调试浮点数算法的数据结构
- 下载用于调试的android源代码快照
- 最简单的用于JS调试代码
- Oceanbase调试:用于调试的单机集群的搭建
- Oceanbase调试:用于调试的单机集群的搭建
- 做后缀数组类的题用于调试的代码
- DebugView用于VC++调试
- 构建一台用于本地调试的多权服务器
- 哈夫曼编码算法源码(带有用于调试的代码)
- 用于调试的printf函数和自定义log函数
- 推荐7款用于PHP的代码调试工具
- 五款用于 Linux 编程的内存调试器
- 用于调试的printf函数和自定义log函数
- GridView如何将分页数据全部导出为EXCEL
- eclipse 整合 svn
- DrawText显示多行文本并能控制行距
- java并发编程-Executor框架
- CDN技术
- 用于调试的宏
- loadrunner 负载压力测试 关于错误号26627
- SQL DDL触发器
- 目前常见的加密壳列表
- 依赖倒置原则
- 一道sizeof的问题
- Flex 中回调函数的写法
- Java图像缩略图类库 Thumbnailator
- CListCtrl使用技巧