1 #ifndef DDEBUG_H
2 #define DDEBUG_H
3
4 #include <ngx_config.h>
5 #include <ngx_core.h>
6
7 #if defined(DDEBUG) && (DDEBUG)
8
9 # if (NGX_HAVE_VARIADIC_MACROS)
10
11 # define dd(...) fprintf(stderr, "eval *** "); \
12 fprintf(stderr, __VA_ARGS__); \
13 fprintf(stderr, " at %s line %d.\n", __FILE__, __LINE__)
14
15 # else
16
17 #include <stdarg.h>
18 #include <stdio.h>
19
20 #include <stdarg.h>
21
dd(const char * fmt,...)22 static void dd(const char * fmt, ...) {
23 }
24
25 # endif
26
27 #else
28
29 # if (NGX_HAVE_VARIADIC_MACROS)
30
31 # define dd(...)
32
33 # else
34
35 #include <stdarg.h>
36
dd(const char * fmt,...)37 static void dd(const char * fmt, ...) {
38 }
39
40 # endif
41
42 #endif
43
44 #if defined(DDEBUG) && (DDEBUG)
45
46 #define dd_check_read_event_handler(r) \
47 dd("r->read_event_handler = %s", \
48 r->read_event_handler == ngx_http_block_reading ? \
49 "ngx_http_block_reading" : \
50 r->read_event_handler == ngx_http_test_reading ? \
51 "ngx_http_test_reading" : \
52 r->read_event_handler == ngx_http_request_empty_handler ? \
53 "ngx_http_request_empty_handler" : "UNKNOWN")
54
55 #define dd_check_write_event_handler(r) \
56 dd("r->write_event_handler = %s", \
57 r->write_event_handler == ngx_http_handler ? \
58 "ngx_http_handler" : \
59 r->write_event_handler == ngx_http_core_run_phases ? \
60 "ngx_http_core_run_phases" : \
61 r->write_event_handler == ngx_http_request_empty_handler ? \
62 "ngx_http_request_empty_handler" : "UNKNOWN")
63
64 #else
65
66 #define dd_check_read_event_handler(r)
67 #define dd_check_write_event_handler(r)
68
69 #endif
70
71 #endif /* DDEBUG_H */
72
73