一个简单的消除调试打印方法
来源:互联网 发布:淘宝熏香炉 编辑:程序博客网 时间:2024/06/12 01:13
我的工程都是在终端上运行,用C语言实现,调试时有很多打印信息,一开始也没有注意,现在准备把软件正式发布的时候,才发现这么printf屏蔽掉也是件麻烦的事情,或者用#ifdef DEBUG这个太烦,或者你查找printf并替换成//printf。这样的有点不安全,比如如果是printf与}此类括号写在一起的就会出错,当然一般是不会这么写的。
我所做的是首先写一个my_printf(...)的函数,具体实现如下:
#include <stdarg.h>
#define DEBUG 0
inline static void my_printf(char* format,...)
...{
#ifdef DEBUG
va_list ap;
va_start(ap, format);
vprintf(format, ap);
va_end(ap);
#endif
}
#define DEBUG 0
inline static void my_printf(char* format,...)
...{
#ifdef DEBUG
va_list ap;
va_start(ap, format);
vprintf(format, ap);
va_end(ap);
#endif
}
你只要把上面这个函数的定义放在某个头文件里,然后让所有调用printf的源文件都包含这个头文件就可以了。
然后把工程里面所有包含printf的函数都替换成my_printf(注意你的工程中是否有其他还有printf字符串的变量或函数,我这里只屏蔽掉了fprintf),用shell 实现:
sed -i "s/printf/my_printf/g" `grep [^f]printf -rl .'
好了,如果你不想有打印信息,只要把#define DEBUG 0 注释掉就可以了,不会增加任何目标代码。
- 一个简单的消除调试打印方法
- android java 打印调用堆栈的一个简单方法
- MFC的打印调试方法
- 最好的调试方法---打印
- 一个简单的用于嵌入式Linux开发的C调试日志打印接口
- 调试的一个方法
- 一个打印调试信息的例子
- 简单调试打印函数
- 消除CFormView滚动条最简单的方法
- python打印log调试信息的方法
- Android 调试打印信息的方法
- MFC 打印调试的三种方法
- MFC 打印调试的三种方法
- Hive UDF调试打印的方法
- 一个消除引用类名产生警告的方法
- warning 的消除方法
- 消除^M的方法
- Xcode调试打印方法
- C#处理鼠标和键盘事件
- IDesign C#编程规范(一)
- windows driver 初学参考
- WEB2.0 中应用回调事件
- 关于DDK的职位
- 一个简单的消除调试打印方法
- new和using的区别
- 新建临时表做为数据源绑定
- 明天,深圳,华为
- oracle中的自增长字段
- 创建X509证书
- IDesign C#编程规范(二)
- ASP分页程序(2)
- 今天搞定了SQL数据库同步(发布,订阅)