SimGrid  3.21
Versatile Simulation of Distributed Systems

Detailed Description

Those are the SimGrid version of the good ol' assert macro.

You can pass them a format message and arguments, just as if it where a printf. It is converted to a XBT_CRITICAL logging request. Be careful: the boolean expression that you want to test should not have side effects, because assertions are disabled at compile time if NDEBUG is set.

Macros

#define xbt_assert(...)
 The condition which failed will be displayed. More...
 
#define _xbt_assert_ARG1(cond)   _xbt_assert_ARGN(cond, "Assertion %s failed", #cond)
 
#define _xbt_assert_ARGN(cond, ...)
 
#define xbt_die(...)
 Kill the program with an error message. More...
 

Functions

void xbt_abort (void)
 Kill the program in silence. More...
 

Macro Definition Documentation

◆ xbt_assert

◆ _xbt_assert_ARG1

#define _xbt_assert_ARG1 (   cond)    _xbt_assert_ARGN(cond, "Assertion %s failed", #cond)

◆ _xbt_assert_ARGN

#define _xbt_assert_ARGN (   cond,
  ... 
)
Value:
do { \
if (!(cond)) { \
XBT_CCRITICAL(root, __VA_ARGS__); \
xbt_backtrace_display_current(); \
abort(); \
} \
} while (0)
int xbt_log_no_loc

◆ xbt_die

#define xbt_die (   ...)
Value:
do { \
XBT_CCRITICAL(xbt, __VA_ARGS__); \
xbt_abort(); \
} while (0)

Kill the program with an error message.

Parameters
...a format string and its arguments

Things are so messed up that the only thing to do now, is to stop the program.

The message is handled by a CRITICAL logging request, and may consist of a format string with arguments.

Function Documentation

◆ xbt_abort()

void xbt_abort ( void  )

Kill the program in silence.