调试
代码调试 大致分为两种调试方法:
- 调试器,如 Linux 的 gdb 调试器。
- 日志打印,就是在代码中加入一些输出信息用来定位问题,这种方式 简单粗暴有效
。
日志打印
打印很简单,谁都会,但是加上相应的技巧,有助于定位问题,并且可以减少麻烦。调试开关在我们需要分析问题而调试代码的时候开启此开关,在问题解决后发布版本的时候可以关闭此开关来禁止打印信息。
调试开关
废话不多说,看下面的示例代码就会懂:
#define DEBUG_ON // turn on or off debug info
#ifdef DEBUG_ON
// 开启
#define FUNCTION_CALLED() printf("[%s] called\n", __func__)
#define FUNCTION_RETURNS() printf("[%s] returns\n", __func__)
#define PR(...) do \
{ \
printf(__VA_ARGS__);\
printf(" [%s:%d]\n",__FILE__,__LINE__);\
}while(0)
#else
// 关闭
#define PR(...)
#define FUNCTION_CALLED()
#define FUNCTION_RETURNS()
#endif
gdb调试
。。。待续