前言:

       无论是Linux开发还是Windows或者Mac os开发,在我们开发项目的过程中,必不可少的就是调试了,特别是开发嵌入式程序,由于资源条件的限制,调试程序变得更为困难。一般常用的由两种方法:

一:打印输出(包括控制台输出和日志文件输出)

二:GDB调试器

        对于Linux平台来说,GDB调试命令行界面使用起来确实很不方便。所以一般更常用的是输出日志文件的方法,下面简单记录下调试输出信息的一个小技巧:

       预定义调试输出宏+封装打印函数

举个栗子

编写一个简单的测试程序test.c,

代码如下:

#include <stdio.h>

#define DEBUG         //预定义调试宏

#ifdef DEBUG          //封装打印函数
        #define PRINT (printf("%s %s %d: ",__FILE__,__FUNCTION__,__LINE__),printf)
#else
        #define PRINT
#endif

void run(int step){
        PRINT("%s:%d\n","I run 100m need: ",step);
}

int main(){
        int i = 6;
        PRINT("%s\n","hello test!");    //调用封装好的打印函数

        run(300);

        return 0;
}

在Linux下编译:

         gcc test.c -o test

执行程序:

        ./test

打印输出:

          

可看到输出符合我们的预期,大大简化了调试打印的过程。

 

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐