File: debug_print.h

package info (click to toggle)
ogle 0.8.2-11
  • links: PTS
  • area: main
  • in suites: woody
  • size: 2,636 kB
  • ctags: 2,827
  • sloc: ansic: 27,297; sh: 7,305; makefile: 234; asm: 71
file content (124 lines) | stat: -rw-r--r-- 2,419 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#ifndef DEBUG_PRINT_INCLUDED
#define DEBUG_PRINT_INCLUDED


#ifdef DEBUG

unsigned 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...) \
fprintf(stderr, "FATAL[%s]: " str, program_name, ## args)

#define ERROR(str, args...) \
fprintf(stderr, "ERROR[%s]: " str, program_name, ## args)

#define WARNING(str, ...) \
fprintf(stderr, "WARNING[%s]: " str, program_name, ## args)

#define NOTE(str, args...) \
fprintf(stderr, "Note[%s]: " str, program_name, ## args)

#define DNOTE(str, args...) \
fprintf(stderr, "Debug[%s]: " str, program_name, ## args)

#ifdef DEBUG

#define DPRINTFI(level, text...) \
if(debug >= level) \
{ \
  fprintf(stderr, "%*s", debug_indent_level, ""); \
  fprintf(stderr, ## text); \
}

#define DPRINTF(level, text...) \
if(debug >= level) \
{ \
  fprintf(stderr, ## text); \
}

#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, ...) \
fprintf(stderr, "FATAL[%s]: " format, program_name , ##__VA_ARGS__)

#define ERROR(format, ...) \
fprintf(stderr, "ERROR[%s]: " format, program_name , ##__VA_ARGS__)

#define WARNING(format, ...) \
fprintf(stderr, "WARNING[%s]: " format, program_name , ##__VA_ARGS__)

#define NOTE(format, ...) \
fprintf(stderr, "Note[%s]: " format, program_name , ##__VA_ARGS__)

#define DNOTE(format, ...) \
fprintf(stderr, "Debug[%s]: " format, program_name , ##__VA_ARGS__)



#ifdef DEBUG

#define DPRINTFI(level, ...) \
if(debug >= level) \
{ \
  fprintf(stderr, "%*s", debug_indent_level, ""); \
  fprintf(stderr, __VA_ARGS__); \
}

#define DPRINTF(level, ...) \
if(debug >= level) \
{ \
  fprintf(stderr, __VA_ARGS__); \
}

#else /* DEBUG */

#define DINDENT(spaces)
#define DPRINTFI(level, ...)
#define DPRINTF(level, ...)

#endif /* DEBUG */

#endif /* __GNUC__ < 2 */

#ifdef DEBUG

#define DPRINTBITS(level, bits, value) \
{ \
  int n; \
  for(n = 0; n < bits; n++) { \
    DPRINTF(level, "%u", (value>>(bits-n-1)) & 0x1); \
  } \
}

#else /* DEBUG */

#define DPRINTBITS(level, bits, value)

#endif /* DEBUG */


#endif /* DEBUG_PRINT_INCLUDED */