diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | debug.c | 27 | ||||
-rw-r--r-- | debug.h | 26 | ||||
-rw-r--r-- | log.h | 2 |
4 files changed, 41 insertions, 16 deletions
@@ -7,7 +7,7 @@ SCRIPTS = fio_generate_plots OBJS = gettime.o fio.o ioengines.o init.o stat.o log.o time.o filesetup.o \ eta.o verify.o memory.o io_u.o parse.o mutex.o options.o \ rbtree.o diskutil.o fifo.o blktrace.o smalloc.o filehash.o helpers.o \ - cgroup.o profile.o + cgroup.o profile.o debug.o OBJS += crc/crc7.o OBJS += crc/crc16.o diff --git a/debug.c b/debug.c new file mode 100644 index 00000000..2eb3b6f9 --- /dev/null +++ b/debug.c @@ -0,0 +1,27 @@ +#include <stdarg.h> +#include <sys/types.h> +#include <unistd.h> +#include "debug.h" + +void __dprint(int type, const char *str, ...) +{ + va_list args; + pid_t pid; + + assert(type < FD_DEBUG_MAX); + + if ((((1 << type)) & fio_debug) == 0) + return; + + pid = getpid(); + if (fio_debug_jobp && *fio_debug_jobp != -1U + && pid != *fio_debug_jobp) + return; + + log_info("%-8s ", debug_levels[(type)].name); + log_info("%-5u ", (int) pid); + + va_start(args, str); + vfprintf(f_out, str, args); + va_end(args); +} @@ -32,24 +32,20 @@ extern struct debug_level debug_levels[]; extern unsigned long fio_debug; -#define dprint(type, str, args...) \ - do { \ - pid_t __pid; \ - assert(type < FD_DEBUG_MAX); \ - if ((((1 << type)) & fio_debug) == 0) \ - break; \ - __pid = getpid(); \ - if (fio_debug_jobp && *fio_debug_jobp != -1U \ - && __pid != *fio_debug_jobp) \ - break; \ - log_info("%-8s ", debug_levels[(type)].name); \ - log_info("%-5u ", (int) __pid); \ - log_info(str, ##args); \ - } while (0) +void __dprint(int type, const char *str, ...); + +#define dprint(type, str, args...) \ + do { \ + if ((((1 << type)) & fio_debug) == 0) \ + break; \ + __dprint((type), (str), ##args); \ + } while (0) \ #else -#define dprint(type, str, args...) +static inline void dprint(int type, const char *str, ...) +{ +} #endif #endif @@ -1,6 +1,8 @@ #ifndef FIO_LOG_H #define FIO_LOG_H +#include <stdio.h> + extern FILE *f_out; extern FILE *f_err; |