19 static inline std::string print_stuff__(std::string msg, std::string dec) {
20 std::cout << msg <<
" -- " << dec << std::endl;
25 #define PERROR_EXCEPTION(errcode, msg) \
26 ([]() { DBGE << msg << std::endl; }(), nvsl::dump_maps(), \
27 nvsl::print_trace(), \
28 std::system_error(errcode, std::generic_category()))
31 #define ASSERT_NON_NULL(val, msg) \
33 DBGE << msg << std::endl; \
36 if ((val) == NULL) { \
37 throw std::runtime_error((msg)); \
43 #define NVSL_ERROR(msg) \
45 DBGE << msg << std::endl; \
48 #elif defined(BUILDING_PUDDLED) || defined(BUILDING_LIBCOMMON)
50 #define NVSL_ERROR(msg) NVSL_ERROR_CLEAN(msg)
53 #define NVSL_ERROR(msg) \
55 DBGE << msg << std::endl; \
56 if (not get_env_val(NVSL_NO_STACKTRACE_ENV)) { \
58 nvsl::print_trace(); \
65 #define NVSL_ERROR_CLEAN(msg) \
67 DBGE << msg << std::endl; \
73 #define NVSL_ASSERT(cond, msg) \
74 if (!(cond)) [[unlikely]] { \
75 DBGE << __FILE__ << ":" << __LINE__ << " Assertion `" << #cond \
76 << "' failed: " << msg << std::endl; \
77 if (not get_env_val(NVSL_NO_STACKTRACE_ENV)) { \
78 nvsl::print_trace(); \
83 #define NVSL_ASSERT(cond, msg) \
90 static inline std::string PSTR() {
91 return std::string(__FILE__) +
":" + std::to_string(__LINE__) +
" " +
92 std::string(strerror(errno));
95 using std::make_optional;