⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debug_print.h

📁 基于linux的DVD播放器程序
💻 H
字号:
#ifndef DEBUG_PRINT_INCLUDED#define DEBUG_PRINT_INCLUDED#include <stdio.h>/* Ugly hack to get the right identifier in the messages */extern char *program_name;extern int dlevel;#define DEFAULT_DLEVEL 3#define GET_DLEVEL() \  {\    char *dlevel_str = getenv("OGLE_DLEVEL"); \    if(dlevel_str != NULL) \      dlevel = atoi(dlevel_str); \    else \      dlevel = DEFAULT_DLEVEL; \  }#ifdef DEBUGunsigned int debug;int debug_indent_level;#define DINDENT(spaces) \{ \   debug_indent_level += spaces; \   if(debug_indent_level < 0) { \     debug_indent_level = 0; \   } \} #endif#if defined(__GNUC__) && ( __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 95))#define FATAL(str, args...) \do { \if(dlevel > 0) fprintf(stderr, "FATAL[%s]: " str, program_name , ## args); \} while(0)#define FATALC(str, args...) \do { \if(dlevel > 0) fprintf(stderr, str, ## args); \} while(0)#define ERROR(str, args...) \do { \if(dlevel > 1) fprintf(stderr, "ERROR[%s]: " str, program_name , ## args); \} while(0) #define WARNING(str, args...) \do { \if(dlevel > 2) fprintf(stderr, "WARNING[%s]: " str, program_name , ## args); \} while(0) #define NOTE(str, args...) \do { \if(dlevel > 3) fprintf(stderr, "Note[%s]: " str, program_name , ## args); \} while(0)#define DNOTE(str, args...) \do { \if(dlevel > 4) fprintf(stderr, "Debug[%s]: " str, program_name , ## args); \} while(0)#define DNOTEC(str, args...) \do { \if(dlevel > 4) fprintf(stderr, str, ## args); \} while(0)#ifdef DEBUG#define DPRINTFI(level, text...) \do { \if(debug >= level) \{ \  fprintf(stderr, "%*s", debug_indent_level, ""); \  fprintf(stderr, ## text); \} \} while(0) #define DPRINTF(level, text...) \do { \if(debug >= level) \{ \  fprintf(stderr, ## text); \} \} while(0)#else /* DEBUG */#define DINDENT(spaces)#define DPRINTFI(level, text...)#define DPRINTF(level, text...)#endif /* DEBUG */#else /* __GNUC__ < 2 *//* TODO: these defines are not portable */#define FATAL(format, ...) \do { \if(dlevel > 0) fprintf(stderr, "FATAL[%s]: " format, program_name , ##__VA_ARGS__); \} while(0)#define FATALC(format, ...) \do { \if(dlevel > 0) fprintf(stderr, format, ##__VA_ARGS__); \} while(0)#define ERROR(format, ...) \do { \if(dlevel > 1) fprintf(stderr, "ERROR[%s]: " format, program_name , ##__VA_ARGS__); \} while(0)#define WARNING(format, ...) \do { \if(dlevel > 2) fprintf(stderr, "WARNING[%s]: " format, program_name , ##__VA_ARGS__); \} while(0)#define NOTE(format, ...) \do { \if(dlevel > 3) fprintf(stderr, "Note[%s]: " format, program_name , ##__VA_ARGS__); \} while(0)#define DNOTE(format, ...) \do { \if(dlevel > 4) fprintf(stderr, "Debug[%s]: " format, program_name , ##__VA_ARGS__); \} while(0)#define DNOTEC(format, ...) \do { \if(dlevel > 4) fprintf(stderr, format, ##__VA_ARGS__); \} while(0)#ifdef DEBUG#define DPRINTFI(level, ...) \do { \if(debug >= level) \{ \  fprintf(stderr, "%*s", debug_indent_level, ""); \  fprintf(stderr, __VA_ARGS__); \} \} while(0)#define DPRINTF(level, ...) \do { \if(debug >= level) \{ \  fprintf(stderr, __VA_ARGS__); \} \} while(0)#else /* DEBUG */#define DINDENT(spaces)#define DPRINTFI(level, ...)#define DPRINTF(level, ...)#endif /* DEBUG */#endif /* __GNUC__ < 2 */#ifdef DEBUG#define DPRINTBITS(level, bits, value) \do { \  int n; \  for(n = 0; n < bits; n++) { \    DPRINTF(level, "%u", (value>>(bits-n-1)) & 0x1); \  } \} while(0)#else /* DEBUG */#define DPRINTBITS(level, bits, value)#endif /* DEBUG */#endif /* DEBUG_PRINT_INCLUDED */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -