调试输出技巧

我们在调试程序时总会想输出一些运行信息,通过它可以知道程序运行过程,方便查错。在windows中可以用集成开发环境单步运行,进入进出函数等,这些及其方便。但在linux中就没有这么方便了,虽然也可以用gcc单步运行,查看变量动态值。尤其在两种系统中开发驱动程序以上方面似乎就不行了,反正至今我也不知道。所以从linux的系统日志中获取灵感,可以将程序过程输出到指定的日志文件,通过查看日志可以知道程序的运行情况。基于此我们肯定要将变量值,提示信息输出到文件,就会遇到像printf(format,args...)这样的可变参数,因为输出的时候会有好几个变量。并且在发布程序的时候要将这些调试输出语句注释掉。每个地方都去处理显然太繁琐,如果一个程序上万行那么光注释这些语句就得花好多时间。linux提供了一种这样的宏的定义,可以大大节约开发时间。比如说宏可以这样定义:

#ifdef  WZWZ_DEBUG

#define WZWZ_OUTPUT(wzwz_file, format, args...) fprintf(wzwz_file, format, ##args)

#else

#define WZWZ_OUTPUT(wzwz_file, format, args...)

#endif

如果是调试版,就定义#define  WZWZ_DEBUG  1;

如果是发布版,就把上面的WZWZ_DEBUG定义一行注释。

这样的话你在程序需要输出的地方就加一句WZWZ_OUTPUT(wzwz_file, format, args...) ;它在调试的时候等同于文件输出语句fprintf(wzwz_file, format, ##args);在发布的时候就是空语句。是不是很方便。另外一种版本也可以

#ifdef  WZWZ_DEBUG

#define WZWZ_OUTPUT(wzwz_file, format, ...) fprintf(wzwz_file, format, ##__VA_ARGS__)

#else

#define WZWZ_OUTPUT(wzwz_file, format, args...)

#endif

 

舞者,无罪...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值