printf 调试相关知识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了printf 调试相关知识相关的知识,希望对你有一定的参考价值。

我们在写程序的时候,一般会加入printf之类的语句来输出调试信息,然而当程序写完之后如何关闭这些调试信息就比较麻烦,这段时间看LoRa相关知识时,发现了官方源码中一个比较好的处理方法,代码如下:

#include <stdio.h>

#define DEBUG_LOG       1

#define MSG(args...) printf(args) /* message that is destined to the user */
#define MSG_DEBUG(FLAG, fmt, ...)                                                                                     do  {                                                                                                         if (FLAG)                                                                                                     fprintf(stdout, "%s:%d:%s(): " fmt, __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__);             } while (0)

int main() {  
    char str[]="Hello World";  
    MSG_DEBUG(DEBUG_LOG, "~~~: %s\\n",str);  
    return 0;  
}  

当不需要输出调试信息时,将DEBUG_LOG置零即可,也可以根据需要多定义几个调试的类型。

 

编译执行程序:

技术分享

 

以上是关于printf 调试相关知识的主要内容,如果未能解决你的问题,请参考以下文章

Linux程序调试-常用调试技巧

printk()函数-消息优先级宏

PHP代码-psysh调试代码片段工具

方便调试使用的代码片段

[linux][c/c++]代码片段01

运行/调试你的PHP代码