【整理】Linux 下 自己使用的 debug宏 printf
阿新 • • 發佈:2019-03-05
lap mat 3.0 splay _file__ too linu pen hid
#ifdef __DEBUG_PRINTF__ /* * * Some Debug printf kit for devlopment * * Date : 2019.03.04 * * Editor : SCHIPS * */ #include <stdio.h> /* Debug with file name and line. */ #define DEBUG(format,...) printf(""format"\n", ##__VA_ARGS__ ) #define DEBUG_RED(format,...) printf("\033[30m\033[31m"format"\033[0m\n", ##__VA_ARGS__) #definedebug.hDEBUG_GREEN(format,...) printf("\033[30m\033[32m"format"\033[0m\n", ##__VA_ARGS__) #define DEBUG_YELLOW(format,...) printf("\033[30m\033[33m"format"\033[0m\n", ##__VA_ARGS__) #define DEBUG_PURP(format,...) printf("\033[30m\033[35m"format"\033[0m\n", ##__VA_ARGS__) #define DEBUG_BLUE(format,...) printf("\033[30m\033[36m"format"\033[0m\n", ##__VA_ARGS__) /*Debug printf infomration with color. */ #define DEBUG_FL(format,...) printf("["__FILE__"](%05d) - %s]\n "format"\n", __LINE__, ##__VA_ARGS__ , __FUNCTION__) #define DEBUG_FLR(format,...) printf("\033[30m\033[31m["__FILE__"](%05d) - %s]\n\033[0m "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__) #defineDEBUG_FLG(format,...) printf("\033[30m\033[32m["__FILE__"](%05d) - %s]\n\033[0m "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__) #define DEBUG_FLY(format,...) printf("\033[30m\033[33m["__FILE__"](%05d) - %s]\n\033[0m "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__) #define DEBUG_FLP(format,...) printf("\033[30m\033[35m["__FILE__"](%05d) - %s]\n\033[0m "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__) #define DEBUG_FLB(format,...) printf("\033[30m\033[36m["__FILE__"](%05d) - %s]\n\033[0m "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__) #define DEBUG_SFL(format,...) printf("["__FILE__"](%05d) - %s] "format"\n", __LINE__, ##__VA_ARGS__ , __FUNCTION__) #define DEBUG_SFLR(format,...) printf("\033[30m\033[31m["__FILE__"](%05d) - %s]\033[0m "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__) #define DEBUG_SFLG(format,...) printf("\033[30m\033[32m["__FILE__"](%05d) - %s]\033[0m "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__) #define DEBUG_SFLY(format,...) printf("\033[30m\033[33m["__FILE__"](%05d) - %s]\033[0m "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__) #define DEBUG_SFLP(format,...) printf("\033[30m\033[35m["__FILE__"](%05d) - %s]\033[0m "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__) #define DEBUG_SFLB(format,...) printf("\033[30m\033[36m["__FILE__"](%05d) - %s]\033[0m "format"\n", __LINE__, __FUNCTION__,##__VA_ARGS__) #define SC_CLEAR() printf("\033[2J") #if 0 /* Another format to Print (Too ugly to me to use.)*/ #define DEBUGA(fmt,args...) printf("[%s(%05d) - %s]\n "#fmt"\n", __FILE__, __LINE__, __FUNCTION__, ##args) #endif #else #define DEBUG(format,...) #define DEBUG_RED(format,...) #define DEBUG_GREEN(format,...) #define DEBUG_YELLOW(format,...) #define DEBUG_PURP(format,...) #define DEBUG_BLUE(format,...) #define DEBUG_FL(format,...) #define DEBUG_FLR(format,...) #define DEBUG_FLG(format,...) #define DEBUG_FLY(format,...) #define DEBUG_FLP(format,...) #define DEBUG_FLB(format,...) #define DEBUG_SFL(format,...) #define DEBUG_SFLR(format,...) #define DEBUG_SFLG(format,...) #define DEBUG_SFLY(format,...) #define DEBUG_SFLP(format,...) #define DEBUG_SFLB(format,...) #define SC_CLEAR(format,...) #endif
#include <stdio.h> #if 1 // To turn on/off Debug printf; #define __DEBUG_PRINTF__ #endif #include "debug.h" void fun1(void) { DEBUG("DEBUG"); DEBUG_RED("RED."); DEBUG_GREEN("GREEN."); DEBUG_YELLOW("YELLOW."); return ; } void fun2(char* buff) { int i = 0; DEBUG_FL("fun2"); DEBUG_FLB("i = %d", i); DEBUG_FLR("buff = %s", buff); DEBUG_FLP("buff = %s", buff); return ; } void fun3(char* buff, int i) { DEBUG_SFL("fun3"); DEBUG_SFLB("i = %d", i); DEBUG_SFLR("buff = %s", buff); DEBUG_SFLP("buff = %s", buff); return ; } int main(void) { SC_CLEAR(); fun1(); printf("---------\n"); fun2("fun 2"); printf("---------\n"); fun3("fun3",3); return 0; }demo_main.c
【整理】Linux 下 自己使用的 debug宏 printf