#ifndef _debug_H
#define _debug_H
#if 0
#define print_dbg( fmt , arg...)
#define print_info( fmt , arg...)
#define print_err( fmt , arg...)
#define __print_errno
#define print_pAddr(p1, p2)
#define print_buf(buf, len)
#define __step
#define __pBegin
#define __pEnd
#define __mark
#define print_y( fmt , arg...)
#else
#define print_y( fmt , arg...) printf("\033[33m[DBG ][%s: %s:%d]" fmt , __FILE__, __FUNCTION__, __LINE__, ##arg)
#define print_dbg( fmt , arg...) printf("\033[37m[DBG ][%s: %s:%d]" fmt , __FILE__, __FUNCTION__, __LINE__, ##arg)
#define print_info( fmt , arg...) printf("\033[32m[INFO][%s: %s:%d]" fmt , __FILE__, __FUNCTION__, __LINE__, ##arg)
#define print_err( fmt , arg...) printf("\033[31m[ERR ][%s: %s:%d]" fmt , __FILE__, __FUNCTION__, __LINE__, ##arg)
#define __print_errno print_err("[errno, err] = [%d, %s]\n", errno, strerror(errno));
#define print_pAddr(p1, p2) printf("\033[37m[Addr compare][%s: %s:%d][0x%x :: 0x%x]\n", __FILE__, __FUNCTION__, __LINE__, p1,p2)
#define __step print_dbg("#\n");
#define __pBegin print_y("begin ..\n");
#define __pEnd print_y("end ..\n");
#define __mark print_dbg("#\n");
#define print_buf(buf, len) do{ \
int i = 0; \
print_info(""); \
printf("buf data = {"); \
for(i = 0; i < len; i++) \
printf("0x%02x, ", (unsigned int)buf[i] ); \
printf("}\n"); \
}while(0)
#endif
#ifdef INVG_RELEASE
#define print_dbg( fmt , arg...)
#define print_info( fmt , arg...)
#define print_err( fmt , arg...)
#define __print_errno
#define print_pAddr(p1, p2)
#define print_buf(buf, len)
#define __step
#define __pBegin
#define __pEnd
#define __mark
#define print_y( fmt , arg...)
#endif
#define STR(s) #s
#define err_ptr_exe(ptr, expresion) if(NULL == ptr) {expresion;}
#define err_ptr_null(ptr) if(NULL == ptr) print_err("%s is null\n", STR(ptr))
#define err_ptr_null_return(ptr, ret) if(NULL == ptr) {print_err("%s is null\n", STR(ptr)); return ret;}
#define err_int_return(ret) if(ret < 0) {print_err("%s\n", strerror(errno)); return ret;}
#endif
调试头文件
最新推荐文章于 2023-07-12 16:52:15 发布