]> gitweb.factorcode.org Git - factor.git/blob - vm/debug.hpp
VM: debug macros FACTOR_PRINT and FACTOR_PRINT_MARK to make better debug
[factor.git] / vm / debug.hpp
1 namespace factor {
2
3 extern bool factor_print_p;
4
5 }
6
7 #ifdef FACTOR_DEBUG
8
9 #define FACTOR_PRINT(x)                                          \
10   do {                                                           \
11     if (factor_print_p) {                                        \
12       std::cerr                                                  \
13           << std::setw(28) << std::left << __FILE__              \
14           << " " << std::setw(4) << std::right << __LINE__       \
15           << " " << std::setw(20) << std::left << __FUNCTION__   \
16           << " " << x                                            \
17           << std::endl;                                          \
18     }                                                            \
19   } while (0)
20 #define FACTOR_PRINT_MARK FACTOR_PRINT("")
21
22 #else
23 #define FACTOR_PRINT(fmt, ...) ((void)0)
24 #define FACTOR_PRINT_MARK ((void)0)
25 #endif