31 #include <ecto/config.hpp> 33 #if defined(ECTO_LOGGING) 34 #include <boost/format.hpp> 41 ECTO_EXPORT void log(
const char*,
const char*,
unsigned line,
const std::string& msg);
47 #define ECTO_ASSERT(X, msg) do { ECTO_RANDOM_DELAY(); } while(false) 49 #define ECTO_ASSERT(X, msg) \ 51 ECTO_RANDOM_DELAY(); \ 52 if (X) ; else ecto::assert_failed(__PRETTY_FUNCTION__, __FILE__, __LINE__, #X, msg); \ 56 #if defined(ECTO_LOGGING) 57 #define ECTO_LOG_DEBUG(fmt, args) \ 59 ECTO_RANDOM_DELAY(); \ 60 if (__builtin_expect((ecto::logging_on()), 0)) \ 61 ::ecto::log(__PRETTY_FUNCTION__, __FILE__, __LINE__, str(boost::format(fmt) % args)); \ 63 #define ECTO_START() ECTO_LOG_DEBUG(">>> %s", __PRETTY_FUNCTION__); 64 #define ECTO_FINISH() ECTO_LOG_DEBUG("<<< %s", __PRETTY_FUNCTION__); 66 #define ECTO_LOG_DEBUG(fmg, args) do { ECTO_RANDOM_DELAY(); } while (false) 67 #define ECTO_START() do { ECTO_RANDOM_DELAY(); } while(false) 68 #define ECTO_FINISH() do { ECTO_RANDOM_DELAY(); } while(false) 71 #ifdef ECTO_TRACE_EXCEPTIONS 72 #define ECTO_TRACE_EXCEPTION(E) ECTO_LOG_DEBUG("CAUGHT: %s", E); 74 #define ECTO_TRACE_EXCEPTION(E)
#define ECTO_EXPORT
Definition: util.hpp:49
ECTO_EXPORT void log(const char *, const char *, unsigned line, const std::string &msg)
Definition: parameters.hpp:11
ECTO_EXPORT void assert_failed(const char *, const char *file, unsigned line, const char *cond, const char *msg)